From e9d7917a6eced31c1f738d2edc051eb735455440 Mon Sep 17 00:00:00 2001 From: Stephan Lachnit Date: Wed, 27 Aug 2025 14:25:39 +0200 Subject: [PATCH] Mark poller API as stable --- include/zmq.h | 128 ++++++++++++++++++++++++------------------------ src/zmq_draft.h | 71 --------------------------- 2 files changed, 64 insertions(+), 135 deletions(-) diff --git a/include/zmq.h b/include/zmq.h index 4b66d42f5f..8f1a2cae8e 100644 --- a/include/zmq.h +++ b/include/zmq.h @@ -496,6 +496,70 @@ typedef struct zmq_pollitem_t ZMQ_EXPORT int zmq_poll (zmq_pollitem_t *items_, int nitems_, long timeout_); +/******************************************************************************/ +/* Poller polling on sockets,fd and thread-safe sockets */ +/******************************************************************************/ + +#define ZMQ_HAVE_POLLER + +typedef struct zmq_poller_event_t +{ + void *socket; + zmq_fd_t fd; + void *user_data; + short events; +} zmq_poller_event_t; + +ZMQ_EXPORT void *zmq_poller_new (void); +ZMQ_EXPORT int zmq_poller_destroy (void **poller_p); +ZMQ_EXPORT int zmq_poller_size (void *poller); +ZMQ_EXPORT int +zmq_poller_add (void *poller, void *socket, void *user_data, short events); +ZMQ_EXPORT int zmq_poller_modify (void *poller, void *socket, short events); +ZMQ_EXPORT int zmq_poller_remove (void *poller, void *socket); +ZMQ_EXPORT int +zmq_poller_wait (void *poller, zmq_poller_event_t *event, long timeout); +ZMQ_EXPORT int zmq_poller_wait_all (void *poller, + zmq_poller_event_t *events, + int n_events, + long timeout); +ZMQ_EXPORT int zmq_poller_fd (void *poller, zmq_fd_t *fd); + +ZMQ_EXPORT int +zmq_poller_add_fd (void *poller, zmq_fd_t fd, void *user_data, short events); +ZMQ_EXPORT int zmq_poller_modify_fd (void *poller, zmq_fd_t fd, short events); +ZMQ_EXPORT int zmq_poller_remove_fd (void *poller, zmq_fd_t fd); + +ZMQ_EXPORT int zmq_socket_get_peer_state (void *socket, + const void *routing_id, + size_t routing_id_size); + +/* Socket monitoring events */ +#define ZMQ_EVENT_PIPES_STATS 0x10000 + +#define ZMQ_CURRENT_EVENT_VERSION 1 +#define ZMQ_CURRENT_EVENT_VERSION_DRAFT 2 + +#define ZMQ_EVENT_ALL_V1 ZMQ_EVENT_ALL +#define ZMQ_EVENT_ALL_V2 ZMQ_EVENT_ALL_V1 | ZMQ_EVENT_PIPES_STATS + +ZMQ_EXPORT int zmq_socket_monitor_versioned ( + void *s_, const char *addr_, uint64_t events_, int event_version_, int type_); +ZMQ_EXPORT int zmq_socket_monitor_pipes_stats (void *s); + +#if !defined _WIN32 +ZMQ_EXPORT int zmq_ppoll (zmq_pollitem_t *items_, + int nitems_, + long timeout_, + const sigset_t *sigmask_); +#else +// Windows has no sigset_t +ZMQ_EXPORT int zmq_ppoll (zmq_pollitem_t *items_, + int nitems_, + long timeout_, + const void *sigmask_); +#endif + /******************************************************************************/ /* Message proxying */ /******************************************************************************/ @@ -711,70 +775,6 @@ zmq_msg_init_buffer (zmq_msg_t *msg_, const void *buf_, size_t size_); #define ZMQ_NOTIFY_CONNECT 1 #define ZMQ_NOTIFY_DISCONNECT 2 -/******************************************************************************/ -/* Poller polling on sockets,fd and thread-safe sockets */ -/******************************************************************************/ - -#define ZMQ_HAVE_POLLER - -typedef struct zmq_poller_event_t -{ - void *socket; - zmq_fd_t fd; - void *user_data; - short events; -} zmq_poller_event_t; - -ZMQ_EXPORT void *zmq_poller_new (void); -ZMQ_EXPORT int zmq_poller_destroy (void **poller_p); -ZMQ_EXPORT int zmq_poller_size (void *poller); -ZMQ_EXPORT int -zmq_poller_add (void *poller, void *socket, void *user_data, short events); -ZMQ_EXPORT int zmq_poller_modify (void *poller, void *socket, short events); -ZMQ_EXPORT int zmq_poller_remove (void *poller, void *socket); -ZMQ_EXPORT int -zmq_poller_wait (void *poller, zmq_poller_event_t *event, long timeout); -ZMQ_EXPORT int zmq_poller_wait_all (void *poller, - zmq_poller_event_t *events, - int n_events, - long timeout); -ZMQ_EXPORT int zmq_poller_fd (void *poller, zmq_fd_t *fd); - -ZMQ_EXPORT int -zmq_poller_add_fd (void *poller, zmq_fd_t fd, void *user_data, short events); -ZMQ_EXPORT int zmq_poller_modify_fd (void *poller, zmq_fd_t fd, short events); -ZMQ_EXPORT int zmq_poller_remove_fd (void *poller, zmq_fd_t fd); - -ZMQ_EXPORT int zmq_socket_get_peer_state (void *socket, - const void *routing_id, - size_t routing_id_size); - -/* DRAFT Socket monitoring events */ -#define ZMQ_EVENT_PIPES_STATS 0x10000 - -#define ZMQ_CURRENT_EVENT_VERSION 1 -#define ZMQ_CURRENT_EVENT_VERSION_DRAFT 2 - -#define ZMQ_EVENT_ALL_V1 ZMQ_EVENT_ALL -#define ZMQ_EVENT_ALL_V2 ZMQ_EVENT_ALL_V1 | ZMQ_EVENT_PIPES_STATS - -ZMQ_EXPORT int zmq_socket_monitor_versioned ( - void *s_, const char *addr_, uint64_t events_, int event_version_, int type_); -ZMQ_EXPORT int zmq_socket_monitor_pipes_stats (void *s); - -#if !defined _WIN32 -ZMQ_EXPORT int zmq_ppoll (zmq_pollitem_t *items_, - int nitems_, - long timeout_, - const sigset_t *sigmask_); -#else -// Windows has no sigset_t -ZMQ_EXPORT int zmq_ppoll (zmq_pollitem_t *items_, - int nitems_, - long timeout_, - const void *sigmask_); -#endif - #endif // ZMQ_BUILD_DRAFT_API diff --git a/src/zmq_draft.h b/src/zmq_draft.h index ce5a04dd17..3e6c142e41 100644 --- a/src/zmq_draft.h +++ b/src/zmq_draft.h @@ -101,77 +101,6 @@ int zmq_msg_init_buffer (zmq_msg_t *msg_, const void *buf_, size_t size_); #define ZMQ_NOTIFY_CONNECT 1 #define ZMQ_NOTIFY_DISCONNECT 2 -/******************************************************************************/ -/* Poller polling on sockets,fd and thread-safe sockets */ -/******************************************************************************/ - -#if defined _WIN32 -typedef SOCKET zmq_fd_t; -#else -typedef int zmq_fd_t; -#endif - -typedef struct zmq_poller_event_t -{ - void *socket; - zmq_fd_t fd; - void *user_data; - short events; -} zmq_poller_event_t; - -void *zmq_poller_new (void); -int zmq_poller_destroy (void **poller_p_); -int zmq_poller_size (void *poller_); -int zmq_poller_add (void *poller_, - void *socket_, - void *user_data_, - short events_); -int zmq_poller_modify (void *poller_, void *socket_, short events_); -int zmq_poller_remove (void *poller_, void *socket_); -int zmq_poller_wait (void *poller_, zmq_poller_event_t *event_, long timeout_); -int zmq_poller_wait_all (void *poller_, - zmq_poller_event_t *events_, - int n_events_, - long timeout_); -zmq_fd_t zmq_poller_fd (void *poller_); - -int zmq_poller_add_fd (void *poller_, - zmq_fd_t fd_, - void *user_data_, - short events_); -int zmq_poller_modify_fd (void *poller_, zmq_fd_t fd_, short events_); -int zmq_poller_remove_fd (void *poller_, zmq_fd_t fd_); - -int zmq_socket_get_peer_state (void *socket_, - const void *routing_id_, - size_t routing_id_size_); - -/* DRAFT Socket monitoring events */ -#define ZMQ_EVENT_PIPES_STATS 0x10000 - -#define ZMQ_CURRENT_EVENT_VERSION 1 -#define ZMQ_CURRENT_EVENT_VERSION_DRAFT 2 - -#define ZMQ_EVENT_ALL_V1 ZMQ_EVENT_ALL -#define ZMQ_EVENT_ALL_V2 ZMQ_EVENT_ALL_V1 | ZMQ_EVENT_PIPES_STATS - -int zmq_socket_monitor_versioned ( - void *s_, const char *addr_, uint64_t events_, int event_version_, int type_); -int zmq_socket_monitor_pipes_stats (void *s_); - -#if !defined _WIN32 -int zmq_ppoll (zmq_pollitem_t *items_, - int nitems_, - long timeout_, - const sigset_t *sigmask_); -#else -// Windows has no sigset_t -int zmq_ppoll (zmq_pollitem_t *items_, - int nitems_, - long timeout_, - const void *sigmask_); -#endif - #endif // ZMQ_BUILD_DRAFT_API #endif //ifndef __ZMQ_DRAFT_H_INCLUDED__