| | |
| | | #include <string> |
| | | #include <thread> |
| | | #include <memory> |
| | | using namespace std; |
| | | |
| | | #include "cbhomeclient.h" |
| | | #include "message.h" |
| | | |
| | | // #include "3dparty/bus_nng/bn_api.h" |
| | | // #include "3rdparty/bus_nng/bn_api.h" |
| | | #include "bhome_msg_api.pb.h" |
| | | |
| | | using namespace std; |
| | | using namespace bhome_msg; |
| | | |
| | | template <class F> void ignoref(F&& f){} |
| | |
| | | |
| | | 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}); |
| | | } |
| | | } |
| | | } |
| | |
| | | while (true) { |
| | | auto msg = bus_client_get_submsg(handle); |
| | | printf("SUB msg topic [%s] data [%s]\n", msg->topic, msg->msg); |
| | | free_submsg(msg); |
| | | |
| | | size_t count = 0; |
| | | auto p = bus_client_query_procs(handle, &count); |
| | | printf("bus_client_query_procs size %lu\n", count); |
| | | free_query_procs(p, count); |
| | | } |
| | | |
| | | bus_client_free(handle); |
| | |
| | | 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)){ |
| | |
| | | void* src = NULL; |
| | | auto msg = bus_client_get_reqmsg(handle, &src); |
| | | auto repmsg = make_reply_msg(0, NULL, 0, "recv request", 12); |
| | | bus_client_reply_msg(handle, src, repmsg); |
| | | bus_client_reply(handle, src, repmsg); |
| | | free_reply_msg(repmsg); |
| | | printf("REPREQ msg [%s] \n", msg->msg); |
| | | |
| | | free_reqmsg(msg); |
| | | this_thread::sleep_for(chrono::seconds{2}); |
| | | // this_thread::sleep_for(chrono::seconds{2}); |
| | | } |
| | | } |
| | | |
| | |
| | | printf("start RR\n"); |
| | | const char* rrtopic = "cbhomeclient_req_rep"; |
| | | thread([&]{ req(rrtopic); }).detach(); |
| | | |
| | | reply(rrtopic); |
| | | |
| | | return 0; |
| | | } |
| | | } |