From f716b571baf59c1b622c7666bb8bf2905126a3d4 Mon Sep 17 00:00:00 2001 From: Martin Sustrik Date: Sun, 24 Jul 2011 18:13:29 +0200 Subject: Only one polling mechanism is compiled Till now wrappers for all the polling mechanisms available on the given platform were compiled, although only one of them was used. This patch compiles just the used one. This can make libzmq binary more concise. Signed-off-by: Martin Sustrik --- src/devpoll.cpp | 5 ++--- src/devpoll.hpp | 8 +++++--- src/epoll.cpp | 5 ++--- src/epoll.hpp | 8 +++++--- src/kqueue.cpp | 8 ++------ src/kqueue.hpp | 9 +++++---- src/poll.cpp | 9 ++------- src/poll.hpp | 12 +++++------ src/poller.hpp | 62 ++++++++++++++++++++++++++++++++------------------------- src/select.cpp | 5 ++++- src/select.hpp | 7 +++++++ 11 files changed, 74 insertions(+), 64 deletions(-) (limited to 'src') diff --git a/src/devpoll.cpp b/src/devpoll.cpp index 25763c6..c4b3c54 100644 --- a/src/devpoll.cpp +++ b/src/devpoll.cpp @@ -18,9 +18,8 @@ along with this program. If not, see . */ -#include "platform.hpp" - -#if defined ZMQ_HAVE_SOLARIS || defined ZMQ_HAVE_HPUX +#include "devpoll.hpp" +#if defined ZMQ_USE_DEVPOLL #include #include diff --git a/src/devpoll.hpp b/src/devpoll.hpp index 2eaaeb2..a668e9a 100644 --- a/src/devpoll.hpp +++ b/src/devpoll.hpp @@ -21,9 +21,9 @@ #ifndef __ZMQ_DEVPOLL_HPP_INCLUDED__ #define __ZMQ_DEVPOLL_HPP_INCLUDED__ -#include "platform.hpp" - -#if defined ZMQ_HAVE_SOLARIS || defined ZMQ_HAVE_HPUX +// poller.hpp decides which polling mechanism to use. +#include "poller.hpp" +#if defined ZMQ_USE_DEVPOLL #include @@ -93,6 +93,8 @@ namespace zmq const devpoll_t &operator = (const devpoll_t&); }; + typedef devpoll_t poller_t; + } #endif diff --git a/src/epoll.cpp b/src/epoll.cpp index 2c84f8c..39b4547 100644 --- a/src/epoll.cpp +++ b/src/epoll.cpp @@ -18,9 +18,8 @@ along with this program. If not, see . */ -#include "platform.hpp" - -#ifdef ZMQ_HAVE_LINUX +#include "epoll.hpp" +#if defined ZMQ_USE_EPOLL #include #include diff --git a/src/epoll.hpp b/src/epoll.hpp index 7e5195e..dc6b3ed 100644 --- a/src/epoll.hpp +++ b/src/epoll.hpp @@ -21,9 +21,9 @@ #ifndef __ZMQ_EPOLL_HPP_INCLUDED__ #define __ZMQ_EPOLL_HPP_INCLUDED__ -#include "platform.hpp" - -#ifdef ZMQ_HAVE_LINUX +// poller.hpp decides which polling mechanism to use. +#include "poller.hpp" +#if defined ZMQ_USE_EPOLL #include #include @@ -89,6 +89,8 @@ namespace zmq const epoll_t &operator = (const epoll_t&); }; + typedef epoll_t poller_t; + } #endif diff --git a/src/kqueue.cpp b/src/kqueue.cpp index e28ecd7..bb42d8f 100644 --- a/src/kqueue.cpp +++ b/src/kqueue.cpp @@ -18,10 +18,8 @@ along with this program. If not, see . */ -#include "platform.hpp" - -#if defined ZMQ_HAVE_FREEBSD || defined ZMQ_HAVE_OPENBSD ||\ - defined ZMQ_HAVE_OSX || defined ZMQ_HAVE_NETBSD +#include "kqueue.hpp" +#if defined ZMQ_USE_KQUEUE #include #include @@ -189,6 +187,4 @@ void zmq::kqueue_t::worker_routine (void *arg_) ((kqueue_t*) arg_)->loop (); } -// Don't pollute namespace with defines local to this file -#undef kevent_udata_t #endif diff --git a/src/kqueue.hpp b/src/kqueue.hpp index d564c7c..4ded81e 100644 --- a/src/kqueue.hpp +++ b/src/kqueue.hpp @@ -21,10 +21,9 @@ #ifndef __ZMQ_KQUEUE_HPP_INCLUDED__ #define __ZMQ_KQUEUE_HPP_INCLUDED__ -#include "platform.hpp" - -#if defined ZMQ_HAVE_FREEBSD || defined ZMQ_HAVE_OPENBSD ||\ - defined ZMQ_HAVE_OSX || defined ZMQ_HAVE_NETBSD +// poller.hpp decides which polling mechanism to use. +#include "poller.hpp" +#if defined ZMQ_USE_KQUEUE #include @@ -96,6 +95,8 @@ namespace zmq const kqueue_t &operator = (const kqueue_t&); }; + typedef kqueue_t poller_t; + } #endif diff --git a/src/poll.cpp b/src/poll.cpp index 6a84d2e..9d1978b 100644 --- a/src/poll.cpp +++ b/src/poll.cpp @@ -18,13 +18,8 @@ along with this program. If not, see . */ -#include "platform.hpp" - -#if defined ZMQ_HAVE_LINUX || defined ZMQ_HAVE_FREEBSD ||\ - defined ZMQ_HAVE_OPENBSD || defined ZMQ_HAVE_SOLARIS ||\ - defined ZMQ_HAVE_OSX || defined ZMQ_HAVE_QNXNTO ||\ - defined ZMQ_HAVE_HPUX || defined ZMQ_HAVE_AIX ||\ - defined ZMQ_HAVE_NETBSD +#include "poll.hpp" +#if defined ZMQ_USE_POLL #include #include diff --git a/src/poll.hpp b/src/poll.hpp index 3a18d03..42f3af1 100644 --- a/src/poll.hpp +++ b/src/poll.hpp @@ -21,13 +21,9 @@ #ifndef __ZMQ_POLL_HPP_INCLUDED__ #define __ZMQ_POLL_HPP_INCLUDED__ -#include "platform.hpp" - -#if defined ZMQ_HAVE_LINUX || defined ZMQ_HAVE_FREEBSD ||\ - defined ZMQ_HAVE_OPENBSD || defined ZMQ_HAVE_SOLARIS ||\ - defined ZMQ_HAVE_OSX || defined ZMQ_HAVE_QNXNTO ||\ - defined ZMQ_HAVE_HPUX || defined ZMQ_HAVE_AIX ||\ - defined ZMQ_HAVE_NETBSD +// poller.hpp decides which polling mechanism to use. +#include "poller.hpp" +#if defined ZMQ_USE_POLL #include #include @@ -97,6 +93,8 @@ namespace zmq const poll_t &operator = (const poll_t&); }; + typedef poll_t poller_t; + } #endif diff --git a/src/poller.hpp b/src/poller.hpp index 10fafb9..a8936ce 100644 --- a/src/poller.hpp +++ b/src/poller.hpp @@ -21,53 +21,61 @@ #ifndef __ZMQ_POLLER_HPP_INCLUDED__ #define __ZMQ_POLLER_HPP_INCLUDED__ -#include "epoll.hpp" -#include "poll.hpp" -#include "select.hpp" -#include "devpoll.hpp" -#include "kqueue.hpp" - -namespace zmq -{ +#include "platform.hpp" #if defined ZMQ_FORCE_SELECT - typedef select_t poller_t; +#define ZMQ_USE_SELECT +#include "select.hpp" #elif defined ZMQ_FORCE_POLL - typedef poll_t poller_t; +#define ZMQ_USE_POLL +#include "poll.hpp" #elif defined ZMQ_FORCE_EPOLL - typedef epoll_t poller_t; +#define ZMQ_USE_EPOLL +#include "epoll.hpp" #elif defined ZMQ_FORCE_DEVPOLL - typedef devpoll_t poller_t; +#define ZMQ_USE_DEVPOLL +#include "devpoll.hpp" #elif defined ZMQ_FORCE_KQUEUE - typedef kqueue_t poller_t; +#define ZMQ_USE_KQUEUE +#include "kqueue.hpp" #elif defined ZMQ_HAVE_LINUX - typedef epoll_t poller_t; +#define ZMQ_USE_EPOLL +#include "epoll.hpp" #elif defined ZMQ_HAVE_WINDOWS - typedef select_t poller_t; +#define ZMQ_USE_SELECT +#include "select.hpp" #elif defined ZMQ_HAVE_FREEBSD - typedef kqueue_t poller_t; +#define ZMQ_USE_KQUEUE +#include "kqueue.hpp" #elif defined ZMQ_HAVE_OPENBSD - typedef kqueue_t poller_t; +#define ZMQ_USE_KQUEUE +#include "kqueue.hpp" #elif defined ZMQ_HAVE_NETBSD - typedef kqueue_t poller_t; +#define ZMQ_USE_KQUEUE +#include "kqueue.hpp" #elif defined ZMQ_HAVE_SOLARIS - typedef devpoll_t poller_t; +#define ZMQ_USE_DEVPOLL +#include "devpoll.hpp" #elif defined ZMQ_HAVE_OSX - typedef kqueue_t poller_t; +#define ZMQ_USE_KQUEUE +#include "kqueue.hpp" #elif defined ZMQ_HAVE_QNXNTO - typedef poll_t poller_t; +#define ZMQ_USE_POLL +#include "poll.hpp" #elif defined ZMQ_HAVE_AIX - typedef poll_t poller_t; +#define ZMQ_USE_POLL +#include "poll.hpp" #elif defined ZMQ_HAVE_HPUX - typedef devpoll_t poller_t; +#define ZMQ_USE_DEVPOLL +#include "devpoll.hpp" #elif defined ZMQ_HAVE_OPENVMS - typedef select_t poller_t; +#define ZMQ_USE_SELECT +#include "select.hpp" #elif defined ZMQ_HAVE_CYGWIN - typedef select_t poller_t; +#define ZMQ_USE_SELECT +#include "select.hpp" #else #error Unsupported platform #endif -} - #endif diff --git a/src/select.cpp b/src/select.cpp index 5d5ce5d..0ecdcd7 100644 --- a/src/select.cpp +++ b/src/select.cpp @@ -18,6 +18,9 @@ along with this program. If not, see . */ +#include "select.hpp" +#if defined ZMQ_USE_SELECT + #include "platform.hpp" #if defined ZMQ_HAVE_WINDOWS #include "windows.hpp" @@ -35,7 +38,6 @@ #include #include -#include "select.hpp" #include "err.hpp" #include "config.hpp" #include "i_poll_events.hpp" @@ -209,3 +211,4 @@ bool zmq::select_t::is_retired_fd (const fd_entry_t &entry) return (entry.fd == retired_fd); } +#endif diff --git a/src/select.hpp b/src/select.hpp index c88dd71..55bc883 100644 --- a/src/select.hpp +++ b/src/select.hpp @@ -21,6 +21,10 @@ #ifndef __ZMQ_SELECT_HPP_INCLUDED__ #define __ZMQ_SELECT_HPP_INCLUDED__ +// poller.hpp decides which polling mechanism to use. +#include "poller.hpp" +#if defined ZMQ_USE_SELECT + #include "platform.hpp" #include @@ -110,7 +114,10 @@ namespace zmq const select_t &operator = (const select_t&); }; + typedef select_t poller_t; + } #endif +#endif -- cgit v1.2.3