Skip to content

Commit

Permalink
Merge pull request #595 from uyha/poller-fd
Browse files Browse the repository at this point in the history
add function for adding file descriptor to poller_t
  • Loading branch information
gummif committed Jun 9, 2023
2 parents 2e6eff0 + 36b6053 commit 9a655c1
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions zmq.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -2663,6 +2663,17 @@ template<typename T = no_user_data> class poller_t
add_impl(socket, events, nullptr);
}

template<
typename Dummy = void,
typename =
typename std::enable_if<!std::is_same<T, no_user_data>::value, Dummy>::type>
void add(fd_t fd, event_flags events, T *user_data)
{
add_impl(fd, events, user_data);
}

void add(fd_t fd, event_flags events) { add_impl(fd, events, nullptr); }

void remove(zmq::socket_ref socket)
{
if (0 != zmq_poller_remove(poller_ptr.get(), socket.handle())) {
Expand Down Expand Up @@ -2729,6 +2740,15 @@ template<typename T = no_user_data> class poller_t
throw error_t();
}
}

void add_impl(fd_t fd, event_flags events, T *user_data)
{
if (0
!= zmq_poller_add_fd(poller_ptr.get(), fd, user_data,
static_cast<short>(events))) {
throw error_t();
}
}
};
#endif // defined(ZMQ_BUILD_DRAFT_API) && defined(ZMQ_CPP11) && defined(ZMQ_HAVE_POLLER)

Expand Down

0 comments on commit 9a655c1

Please sign in to comment.