File tree Expand file tree Collapse file tree 1 file changed +27
-7
lines changed Expand file tree Collapse file tree 1 file changed +27
-7
lines changed Original file line number Diff line number Diff line change @@ -990,25 +990,45 @@ namespace zmq
990
990
991
991
~poller_t ()
992
992
{
993
- zmq_poller_destroy (&poller_ptr);
993
+ if (poller_ptr)
994
+ {
995
+ int rc = zmq_poller_destroy (&poller_ptr);
996
+ assert (rc == 0 );
997
+ }
998
+ }
999
+
1000
+ poller_t (const poller_t &) = delete ;
1001
+ poller_t &operator =(const poller_t &) = delete ;
1002
+ poller_t (poller_t && src)
1003
+ : poller_ptr(src.poller_ptr)
1004
+ , poller_events(std::move (src.poller_events))
1005
+ {
1006
+ src.poller_ptr = NULL ;
994
1007
}
1008
+ poller_t &operator =(poller_t && src)
1009
+ {
1010
+ poller_ptr = src.poller_ptr ;
1011
+ poller_events = std::move (src.poller_events );
1012
+ src.poller_ptr = NULL ;
1013
+ return *this ;
1014
+ }
995
1015
996
- bool add (zmq::socket_t &socket, short events, std::function<void (void )> &handler)
1016
+ void add (zmq::socket_t &socket, short events, std::function<void (void )> &handler)
997
1017
{
998
1018
if (0 == zmq_poller_add (poller_ptr, socket.ptr , handler ? &handler : NULL , events)) {
999
1019
poller_events.emplace_back (zmq_poller_event_t ());
1000
- return true ;
1020
+ return ;
1001
1021
}
1002
- return false ;
1022
+ throw error_t () ;
1003
1023
}
1004
1024
1005
- bool remove (zmq::socket_t &socket)
1025
+ void remove (zmq::socket_t &socket)
1006
1026
{
1007
1027
if (0 == zmq_poller_remove (poller_ptr, socket.ptr )) {
1008
1028
poller_events.pop_back ();
1009
- return true ;
1029
+ return ;
1010
1030
}
1011
- return false ;
1031
+ throw error_t () ;
1012
1032
}
1013
1033
1014
1034
bool wait (std::chrono::milliseconds timeout)
You can’t perform that action at this time.
0 commit comments