diff options
author | Florent Le Coz <louiz@louiz.org> | 2015-02-27 12:16:09 +0100 |
---|---|---|
committer | Florent Le Coz <louiz@louiz.org> | 2015-02-27 12:26:48 +0100 |
commit | d600a2843f1dbe3b1ba2dead9a020cc73d7d10ae (patch) | |
tree | a34da2e3c617a39a73f716b9a5dddbdfbc510df6 /src/network/poller.hpp | |
parent | 1028d4d549b517c5b42bb0c30a410d1ab43c4cf3 (diff) | |
download | biboumi-d600a2843f1dbe3b1ba2dead9a020cc73d7d10ae.tar.gz biboumi-d600a2843f1dbe3b1ba2dead9a020cc73d7d10ae.tar.bz2 biboumi-d600a2843f1dbe3b1ba2dead9a020cc73d7d10ae.tar.xz biboumi-d600a2843f1dbe3b1ba2dead9a020cc73d7d10ae.zip |
Remove all the libs that are now in louloulibs
Diffstat (limited to 'src/network/poller.hpp')
-rw-r--r-- | src/network/poller.hpp | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/src/network/poller.hpp b/src/network/poller.hpp deleted file mode 100644 index c674e4c..0000000 --- a/src/network/poller.hpp +++ /dev/null @@ -1,95 +0,0 @@ -#ifndef POLLER_INCLUDED -# define POLLER_INCLUDED - -#include <network/socket_handler.hpp> - -#include <unordered_map> -#include <memory> -#include <chrono> - -#define POLL 1 -#define EPOLL 2 -#define KQUEUE 3 -#include <config.h> -#ifndef POLLER - #define POLLER POLL -#endif - -#if POLLER == POLL - #include <poll.h> - #define MAX_POLL_FD_NUMBER 4096 -#elif POLLER == EPOLL - #include <sys/epoll.h> -#else - #error Invalid POLLER value -#endif - -/** - * We pass some SocketHandlers to this Poller, which uses - * poll/epoll/kqueue/select etc to wait for events on these SocketHandlers, - * and call the callbacks when event occurs. - * - * TODO: support these pollers: - * - kqueue(2) - */ - -class Poller -{ -public: - explicit Poller(); - ~Poller(); - /** - * Add a SocketHandler to be monitored by this Poller. All receive events - * are always automatically watched. - */ - void add_socket_handler(SocketHandler* socket_handler); - /** - * Remove (and stop managing) a SocketHandler, designated by the given socket_t. - */ - void remove_socket_handler(const socket_t socket); - /** - * Signal the poller that he needs to watch for send events for the given - * SocketHandler. - */ - void watch_send_events(SocketHandler* socket_handler); - /** - * Signal the poller that he needs to stop watching for send events for - * this SocketHandler. - */ - void stop_watching_send_events(SocketHandler* socket_handler); - /** - * Wait for all watched events, and call the SocketHandlers' callbacks - * when one is ready. Returns if nothing happened before the provided - * timeout. If the timeout is 0, it waits forever. If there is no - * watched event, returns -1 immediately, ignoring the timeout value. - * Otherwise, returns the number of event handled. If 0 is returned this - * means that we were interrupted by a signal, or the timeout occured. - */ - int poll(const std::chrono::milliseconds& timeout); - /** - * Returns the number of SocketHandlers managed by the poller. - */ - size_t size() const; - -private: - /** - * A "list" of all the SocketHandlers that we manage, indexed by socket, - * because that's what is returned by select/poll/etc when an event - * occures. - */ - std::unordered_map<socket_t, SocketHandler*> socket_handlers; - -#if POLLER == POLL - struct pollfd fds[MAX_POLL_FD_NUMBER]; - nfds_t nfds; -#elif POLLER == EPOLL - int epfd; -#endif - - Poller(const Poller&) = delete; - Poller(Poller&&) = delete; - Poller& operator=(const Poller&) = delete; - Poller& operator=(Poller&&) = delete; -}; - -#endif // POLLER_INCLUDED |