| | |
| | | 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); |
| | |
| | | |
| | | 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}); |
| | | } |
| | | } |
| | | } |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | 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)){ |
| | |
| | | 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); |
| | |
| | | printf("REPREQ msg [%s] \n", msg->msg); |
| | | |
| | | free_reqmsg(msg); |
| | | this_thread::sleep_for(chrono::seconds{2}); |
| | | // this_thread::sleep_for(chrono::seconds{2}); |
| | | } |
| | | } |
| | | |
| | |
| | | reply(rrtopic); |
| | | |
| | | return 0; |
| | | } |
| | | } |