zhangmeng
2022-12-26 4d938d149e782a6e2fed668eec4e1a023df9f35c
main.cpp
@@ -18,11 +18,11 @@
static void pub(const vector<string>& topics){
    ignoref(pub);
    vector<const char*> pubtpc;
    for(auto& t : topics) pubtpc.push_back(t.c_str());
    vector<const char*> tpc;
    for(auto& t : topics) tpc.push_back(t.c_str());
    creg* reg = make_creg(make_cproc("pub", "pubid"),
        NULL, 0, &pubtpc[0], pubtpc.size(), NULL, 0, NULL, 0);
        NULL, 0, &tpc[0], tpc.size(), NULL, 0, NULL, 0);
    void* handle = bus_client_init(NULL, 0, reg);
    creg_free(reg);
@@ -41,7 +41,7 @@
            int ret = bus_client_publish(handle, i.data(), i.size(), msg.data(), msg.size());
            printf("======>> bus_client_pubmsg [%s] ret %d\n", msg.c_str(), ret);
            this_thread::sleep_for(chrono::seconds{2});
            this_thread::sleep_for(chrono::seconds{1});
        }
    }
}
@@ -49,11 +49,11 @@
static void sub(const vector<string>& topics){
    ignoref(sub);
    vector<const char*> pubtpc;
    for(auto& t : topics) pubtpc.push_back(t.c_str());
    vector<const char*> tpc;
    for(auto& t : topics) tpc.push_back(t.c_str());
    creg* reg = make_creg(make_cproc("sub", "subid"),
        NULL, 0, NULL, 0, &pubtpc[0], pubtpc.size(), NULL, 0);
        NULL, 0, NULL, 0, &tpc[0], tpc.size(), NULL, 0);
    void* handle = bus_client_init(NULL, 0, reg);
    creg_free(reg);
@@ -61,6 +61,7 @@
    while (true) {
        auto msg = bus_client_get_submsg(handle);
        printf("SUB msg topic [%s] data [%s]\n", msg->topic, msg->msg);
        free_submsg(msg);
    }
    bus_client_free(handle);
@@ -70,17 +71,16 @@
    ignoref(req);
    const auto topicl = strlen(topic);
    creg* reg = make_creg(make_cproc("request", "requestid"),
        NULL, 0, NULL, 0, NULL, 0, NULL, 0);
    creg* reg = make_creg_from_cproc(make_cproc("request", "requestid"));
    void* handle = bus_client_init(NULL, 0, reg);
    creg_free(reg);
    size_t count = 0;
    string base_msg("test_request==");
    string base_msg("test_request==request message -> msg-");
    this_thread::sleep_for(chrono::seconds(3));
    while (true) {
        auto msg = base_msg + "request message -> msg-"+to_string(count++);
        auto msg = base_msg + to_string(count++);
        auto reqmsg = make_req_msg(topic, topicl, msg.data(), msg.size());
        crepmsg* repmsg = NULL;
        if (bus_client_request(handle, reqmsg, &repmsg)){
@@ -96,10 +96,14 @@
    ignoref(reply);
    const auto topicl = strlen(topic);
    vector<const char*> pubtpc{topic};
    vector<const char*> tpc{topic};
    creg* reg = make_creg(make_cproc("reply", "replyid"),
        &pubtpc[0], pubtpc.size(), &pubtpc[0], pubtpc.size(), NULL, 0, NULL, 0);
    // creg* reg = make_creg(make_cproc("reply", "replyid"),
    //     &tpc[0], tpc.size(), &tpc[0], tpc.size(), NULL, 0, NULL, 0);
    creg* reg = make_creg_from_cproc(make_cproc("reply", "replyid"));
    creg_add_topic_reply(reg, tpc.data(), tpc.size());
    creg_add_topic_pub(reg, tpc.data(), tpc.size());
    void* handle = bus_client_init(NULL, 0, reg);
    creg_free(reg);
@@ -115,7 +119,7 @@
        printf("REPREQ msg [%s] \n", msg->msg);
        free_reqmsg(msg);
        this_thread::sleep_for(chrono::seconds{2});
        // this_thread::sleep_for(chrono::seconds{2});
    }
}
@@ -134,4 +138,4 @@
    reply(rrtopic);
    return 0;
}
}