X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Fyazpp%2Fsocket-manager.h;h=24469d51f97f86ab1cf44d11e73514eacc259be0;hb=6f3834da6184bd3c38812c1b3f30e8c9d287d887;hp=e9970d997c678dfdadb5d2d1ba3d596bfbd2e803;hpb=0084c40d8bc6babaeb0b833b12d9cd625c807525;p=yazpp-moved-to-github.git diff --git a/include/yazpp/socket-manager.h b/include/yazpp/socket-manager.h index e9970d9..24469d5 100644 --- a/include/yazpp/socket-manager.h +++ b/include/yazpp/socket-manager.h @@ -29,7 +29,6 @@ #define YAZ_SOCKET_MANAGER_INCLUDED #include -#include struct yaz_poll_fd; namespace yazpp_1 { @@ -40,33 +39,11 @@ namespace yazpp_1 { */ class YAZ_EXPORT SocketManager : public ISocketObservable { private: - struct SocketEntry { - ISocketObserver *observer; - int fd; - unsigned mask; - int timeout; - int timeout_this; - time_t last_activity; - SocketEntry *next; - }; - SocketEntry *m_observers; // all registered observers - struct SocketEvent { - ISocketObserver *observer; - int event; - SocketEvent *next; // front in queue - SocketEvent *prev; // back in queue - }; - SocketEvent *m_queue_front; - SocketEvent *m_queue_back; - - SocketEntry **lookupObserver - (ISocketObserver *observer); - SocketEvent *getEvent(); - void putEvent(SocketEvent *event); - void removeEvent(ISocketObserver *observer); - int m_log; - void inspect_poll_result(int res, struct yaz_poll_fd *fds, int no_fds, - int timeout); + struct SocketEntry; + struct SocketEvent; + struct Rep; + + Rep *m_p; public: /// Add an observer virtual void addObserver(int fd, ISocketObserver *observer); @@ -77,10 +54,10 @@ class YAZ_EXPORT SocketManager : public ISocketObservable { /// Set event mask for observer virtual void maskObserver(ISocketObserver *observer, int mask); /// Set timeout - virtual void timeoutObserver(ISocketObserver *observer, - int timeout); + virtual void timeoutObserver(ISocketObserver *observer, int timeout); /// Process one event. return > 0 if event could be processed; int processEvent(); + int getNumberOfObservers(); SocketManager(); virtual ~SocketManager(); };