From 84d854a088d27b642355d4e835a2d93e405452ae Mon Sep 17 00:00:00 2001 From: Martin Sustrik Date: Tue, 29 Sep 2009 15:40:29 +0200 Subject: documentation error in zmq.h fixed --- bindings/c/zmq.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'bindings/c') diff --git a/bindings/c/zmq.h b/bindings/c/zmq.h index f42f7f9..e939dcd 100644 --- a/bindings/c/zmq.h +++ b/bindings/c/zmq.h @@ -344,8 +344,8 @@ ZMQ_EXPORT int zmq_send (void *s, zmq_msg_t *msg, int flags); // EFSM - function cannot be called at the moment. ZMQ_EXPORT int zmq_flush (void *s); -// Send a message from the socket 's'. 'flags' argument can be combination -// of the flags described above. +// Receive a message from the socket 's'. 'flags' argument can be combination +// of the flags described above with the exception of ZMQ_NOFLUSH. // // Errors: EAGAIN - message cannot be received at the moment (applies only to // non-blocking receive). -- cgit v1.2.3 From cc631c4c6649b0d67114db13386a949426e35dbf Mon Sep 17 00:00:00 2001 From: Martin Sustrik Date: Thu, 1 Oct 2009 10:56:17 +0200 Subject: ZMQII-18: Implement I/O multiplexing (first approximation) --- bindings/c/zmq.h | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'bindings/c') diff --git a/bindings/c/zmq.h b/bindings/c/zmq.h index e939dcd..3eeb3f8 100644 --- a/bindings/c/zmq.h +++ b/bindings/c/zmq.h @@ -353,6 +353,39 @@ ZMQ_EXPORT int zmq_flush (void *s); // EFSM - function cannot be called at the moment. ZMQ_EXPORT int zmq_recv (void *s, zmq_msg_t *msg, int flags); +//////////////////////////////////////////////////////////////////////////////// +// I/O multiplexing. +//////////////////////////////////////////////////////////////////////////////// + +#define ZMQ_POLLIN 1 +#define ZMQ_POLLOUT 2 + +// 'socket' is a 0MQ socket we want to poll on. If set to NULL, native file +// descriptor (socket) 'fd' will be used instead. 'events' defines event we +// are going to poll on - combination of ZMQ_POLLIN and ZMQ_POLLOUT. Error +// event does not exist for portability reasons. Errors from native sockets +// are reported as ZMQ_POLLIN. It's client's responsibilty to identify the +// error afterwards. 'revents' field is filled in after function returns. It's +// a combination of ZMQ_POLLIN and/or ZMQ_POLLOUT depending on the state of the +// socket. +typedef struct +{ + void *socket; + int fd; + short events; + short revents; +} zmq_pollitem_t; + +// Polls for the items specified by 'items'. Number of items in the array is +// determined by 'nitems' argument. Returns number of items signaled, -1 +// in the case of error. +// +// Errors: EFAULT - there's a 0MQ socket in the pollset belonging to +// a different thread. +// ENOTSUP - 0MQ context was initialised without ZMQ_POLL flag. +// I/O multiplexing is disabled. +ZMQ_EXPORT int zmq_poll (zmq_pollitem_t *items, int nitems); + //////////////////////////////////////////////////////////////////////////////// // Helper functions. //////////////////////////////////////////////////////////////////////////////// -- cgit v1.2.3 From 49a9ef5fcb661827ee174415b4608e609bd0a65b Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 1 Oct 2009 13:48:04 +0200 Subject: windows error handling improved --- bindings/c/zmq.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'bindings/c') diff --git a/bindings/c/zmq.h b/bindings/c/zmq.h index 3eeb3f8..40750ec 100644 --- a/bindings/c/zmq.h +++ b/bindings/c/zmq.h @@ -51,6 +51,18 @@ extern "C" { #ifndef EPROTONOSUPPORT #define EPROTONOSUPPORT (ZMQ_HAUSNUMERO + 2) #endif +#ifndef ENOBUFS +#define ENOBUFS (ZMQ_HAUSNUMERO + 3) +#endif +#ifndef ENETDOWN +#define ENETDOWN (ZMQ_HAUSNUMERO + 4) +#endif +#ifndef EADDRINUSE +#define EADDRINUSE (ZMQ_HAUSNUMERO + 5) +#endif +#ifndef EADDRNOTAVAIL +#define EADDRNOTAVAIL (ZMQ_HAUSNUMERO + 6) +#endif // Native 0MQ error codes. #define EMTHREAD (ZMQ_HAUSNUMERO + 50) -- cgit v1.2.3