diff options
Diffstat (limited to 'icespider/embedded/embedded.h')
-rw-r--r-- | icespider/embedded/embedded.h | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/icespider/embedded/embedded.h b/icespider/embedded/embedded.h index 7d7fafa..0e1055a 100644 --- a/icespider/embedded/embedded.h +++ b/icespider/embedded/embedded.h @@ -5,15 +5,11 @@ #include <memory> #include <array> #include <vector> -#include </usr/include/semaphore.h> -#include <blockingconcurrentqueue.h> #include "socketHandler.h" namespace IceSpider::Embedded { class DLL_PUBLIC Listener { public: - typedef moodycamel::BlockingConcurrentQueue<SocketHandler::Work> WorkQueue; - Listener(); Listener(unsigned short portno); ~Listener(); @@ -26,23 +22,19 @@ namespace IceSpider::Embedded { template<typename T, typename ... P> inline int create(const P & ... p) { auto s = std::make_unique<T>(p...); - topSock = std::max(s->fd + 1, topSock); + sockCount++; return (sockets[s->fd] = std::move(s))->fd; } - WorkQueue work; + void add(int fd, int flags); + void rearm(int fd, int flags); + void remove(int fd); private: - inline void add(int fd); - inline void remove(int fd); - - void worker(); - typedef std::unique_ptr<SocketHandler> SocketPtr; typedef std::array<SocketPtr, 1024> Sockets; - int topSock; + int sockCount, epollfd; Sockets sockets; - fd_set rfds, wfds, efds; }; }; |