MCPcopy Create free account
hub / github.com/BehaviorTree/BehaviorTree.CPP / monitor_t

Class monitor_t

3rdparty/cppzmq/zmq.hpp:2312–2618  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2310#endif
2311
2312class monitor_t
2313{
2314 public:
2315 monitor_t() : _socket(), _monitor_socket() {}
2316
2317 virtual ~monitor_t() { close(); }
2318
2319#ifdef ZMQ_HAS_RVALUE_REFS
2320 monitor_t(monitor_t &&rhs) ZMQ_NOTHROW : _socket(), _monitor_socket()
2321 {
2322 std::swap(_socket, rhs._socket);
2323 std::swap(_monitor_socket, rhs._monitor_socket);
2324 }
2325
2326 monitor_t &operator=(monitor_t &&rhs) ZMQ_NOTHROW
2327 {
2328 close();
2329 _socket = socket_ref();
2330 std::swap(_socket, rhs._socket);
2331 std::swap(_monitor_socket, rhs._monitor_socket);
2332 return *this;
2333 }
2334#endif
2335
2336
2337 void
2338 monitor(socket_t &socket, std::string const &addr, int events = ZMQ_EVENT_ALL)
2339 {
2340 monitor(socket, addr.c_str(), events);
2341 }
2342
2343 void monitor(socket_t &socket, const char *addr_, int events = ZMQ_EVENT_ALL)
2344 {
2345 init(socket, addr_, events);
2346 while (true) {
2347 check_event(-1);
2348 }
2349 }
2350
2351 void init(socket_t &socket, std::string const &addr, int events = ZMQ_EVENT_ALL)
2352 {
2353 init(socket, addr.c_str(), events);
2354 }
2355
2356 void init(socket_t &socket, const char *addr_, int events = ZMQ_EVENT_ALL)
2357 {
2358 int rc = zmq_socket_monitor(socket.handle(), addr_, events);
2359 if (rc != 0)
2360 throw error_t();
2361
2362 _socket = socket;
2363 _monitor_socket = socket_t(socket.ctxptr, ZMQ_PAIR);
2364 _monitor_socket.connect(addr_);
2365
2366 on_monitor_started();
2367 }
2368
2369 bool check_event(int timeout = 0)

Callers

nothing calls this directly

Calls 3

socket_refClass · 0.85
closeMethod · 0.80
swapFunction · 0.70

Tested by

no test coverage detected