From 738968082bdb03681385c486e3b55125447cda87 Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Mon, 2 May 2016 19:54:31 +0100 Subject: [PATCH] Problem: zmq_poller* are not yet stable APIs Solution: mark them as DRAFT APIs --- Makefile.am | 10 +++---- include/zmq.h | 71 ++++++++++++++++++++++---------------------- src/precompiled.hpp | 39 ++++++++++++++++++++++++ tests/CMakeLists.txt | 2 +- 4 files changed, 80 insertions(+), 42 deletions(-) diff --git a/Makefile.am b/Makefile.am index 68766629..e4173ea4 100644 --- a/Makefile.am +++ b/Makefile.am @@ -394,7 +394,6 @@ test_apps = \ tests/test_sockopt_hwm \ tests/test_heartbeats \ tests/test_stream_exceeds_buffer \ - tests/test_poller \ tests/test_timers \ tests/test_radio_dish \ tests/test_udp \ @@ -598,9 +597,6 @@ tests_test_heartbeats_LDADD = src/libzmq.la tests_test_stream_exceeds_buffer_SOURCES = tests/test_stream_exceeds_buffer.cpp tests_test_stream_exceeds_buffer_LDADD = src/libzmq.la -tests_test_poller_SOURCES = tests/test_poller.cpp -tests_test_poller_LDADD = src/libzmq.la - tests_test_timers_SOURCES = tests/test_timers.cpp tests_test_timers_LDADD = src/libzmq.la @@ -733,9 +729,13 @@ test_reqrep_vmci_CXXFLAGS = @LIBZMQ_VMCI_CXXFLAGS@ endif if ENABLE_DRAFTS -test_apps += tests/test_client_server \ +test_apps += tests/test_poller \ + tests/test_client_server \ tests/test_thread_safe +tests_test_poller_SOURCES = tests/test_poller.cpp +tests_test_poller_LDADD = src/libzmq.la + tests_test_client_server_SOURCES = tests/test_client_server.cpp tests_test_client_server_LDADD = src/libzmq.la diff --git a/include/zmq.h b/include/zmq.h index 6ce4f1c1..8d1e0261 100644 --- a/include/zmq.h +++ b/include/zmq.h @@ -438,42 +438,6 @@ 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; -#if defined _WIN32 - SOCKET fd; -#else - int fd; -#endif - 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_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); - -#if defined _WIN32 -ZMQ_EXPORT int zmq_poller_add_fd (void *poller, SOCKET fd, void *user_data, short events); -ZMQ_EXPORT int zmq_poller_modify_fd (void *poller, SOCKET fd, short events); -ZMQ_EXPORT int zmq_poller_remove_fd (void *poller, SOCKET fd); -#else -ZMQ_EXPORT int zmq_poller_add_fd (void *poller, int fd, void *user_data, short events); -ZMQ_EXPORT int zmq_poller_modify_fd (void *poller, int fd, short events); -ZMQ_EXPORT int zmq_poller_remove_fd (void *poller, int fd); -#endif - -/******************************************************************************/ -/* Scheduling timers */ /******************************************************************************/ #define ZMQ_HAVE_TIMERS @@ -584,6 +548,41 @@ ZMQ_EXPORT void zmq_threadclose (void* thread); #define ZMQ_SERVER 12 #define ZMQ_CLIENT 13 +/******************************************************************************/ +/* Poller polling on sockets,fd and thread-safe sockets */ +/******************************************************************************/ + +#define ZMQ_HAVE_POLLER + +typedef struct zmq_poller_event_t +{ + void *socket; +#if defined _WIN32 + SOCKET fd; +#else + int fd; +#endif + 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_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); + +#if defined _WIN32 +ZMQ_EXPORT int zmq_poller_add_fd (void *poller, SOCKET fd, void *user_data, short events); +ZMQ_EXPORT int zmq_poller_modify_fd (void *poller, SOCKET fd, short events); +ZMQ_EXPORT int zmq_poller_remove_fd (void *poller, SOCKET fd); +#else +ZMQ_EXPORT int zmq_poller_add_fd (void *poller, int fd, void *user_data, short events); +ZMQ_EXPORT int zmq_poller_modify_fd (void *poller, int fd, short events); +ZMQ_EXPORT int zmq_poller_remove_fd (void *poller, int fd); +#endif + #endif // ZMQ_BUILD_DRAFT_API diff --git a/src/precompiled.hpp b/src/precompiled.hpp index 282d8ab8..a2ea8a73 100644 --- a/src/precompiled.hpp +++ b/src/precompiled.hpp @@ -156,6 +156,45 @@ #define ZMQ_SERVER 12 #define ZMQ_CLIENT 13 +/* DRAFT Socket events. */ +int zmq_join (void *s, const char *group); +int zmq_leave (void *s, const char *group); + +/******************************************************************************/ +/* Poller polling on sockets,fd and thread-safe sockets */ +/******************************************************************************/ + +#define ZMQ_HAVE_POLLER + +typedef struct zmq_poller_event_t +{ + void *socket; +#if defined _WIN32 + SOCKET fd; +#else + int fd; +#endif + void *user_data; + short events; +} zmq_poller_event_t; + +void *zmq_poller_new (void); +int zmq_poller_destroy (void **poller_p); +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); + +#if defined _WIN32 +int zmq_poller_add_fd (void *poller, SOCKET fd, void *user_data, short events); +int zmq_poller_modify_fd (void *poller, SOCKET fd, short events); +int zmq_poller_remove_fd (void *poller, SOCKET fd); +#else +int zmq_poller_add_fd (void *poller, int fd, void *user_data, short events); +int zmq_poller_modify_fd (void *poller, int fd, short events); +int zmq_poller_remove_fd (void *poller, int fd); +#endif + #endif // ZMQ_BUILD_DRAFT_API #endif //ifndef __ZMQ_PRECOMPILED_HPP_INCLUDED__ diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 84a5773f..cf9b8dc3 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -55,7 +55,6 @@ set(tests test_setsockopt test_sockopt_hwm test_heartbeats - test_poller test_atomics test_bind_src_address test_capabilities @@ -118,6 +117,7 @@ endif() IF (ENABLE_DRAFTS) list(APPEND tests + test_poller test_thread_safe test_client_server )