Advertisement
Guest User

Example of ZMQ_PUB with HWM not working.

a guest
Aug 16th, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.25 KB | None | 0 0
  1. /**
  2.  * Example of ZMQ_PUB with HWM not working.
  3.  *
  4.  * clang++ -std=c++17 -O3 pubhwm_test.cpp -o pubhwm_test -lzmq
  5.  */
  6.  
  7. #include <zmq.hpp>
  8. #include <iostream>
  9. #include <chrono>
  10. #include <thread>
  11. #include <cstring>
  12.  
  13. int main(void)
  14. {
  15.     std::cout << "Starting PUB\n";
  16.     auto const context = zmq_ctx_new();
  17.     assert(nullptr != context);
  18.     auto const socket = zmq_socket(context, ZMQ_PUB);
  19.     assert(nullptr != socket);
  20.  
  21.     auto send_hwm = 100;
  22.     {
  23.         auto const rc = zmq_setsockopt(socket, ZMQ_SNDHWM, &send_hwm, sizeof(send_hwm));
  24.         assert(0 == rc);
  25.     }
  26.     {
  27.         auto const rc = zmq_bind(socket, "ipc:///tmp//zmq_ipc_example");
  28.         assert(0 == rc);
  29.     }
  30.  
  31.     char* end = nullptr;
  32.     char msg[] = "Never say never again.";
  33.     auto const len = strlen(msg);
  34.     for (long i = 0; ; ++i) {
  35.         auto const rc = zmq_send(socket, msg, len, ZMQ_DONTWAIT);
  36.         if (-1 == rc) {
  37.             std::cerr << "Failure sending message number=" << i << std::endl;
  38.         } else {
  39.             std::cout << "Send message number=" << i << std::endl;
  40.         }
  41.         std::this_thread::sleep_for(std::chrono::milliseconds(20));
  42.     }
  43.     zmq_close(socket);
  44.     zmq_ctx_destroy(context);
  45.     return EXIT_SUCCESS;
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement