X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Fyazpp%2Fsocket-manager.h;h=4d25e831118592a6dc1f69fed164b39723c2c0ad;hb=09840dc91369b6db098188a74ce1d9988ede400b;hp=b56feea543637734ce84146319dc44d80347268c;hpb=8353663886b90d762d43790780be6cb58fb93c8a;p=yazpp-moved-to-github.git diff --git a/include/yazpp/socket-manager.h b/include/yazpp/socket-manager.h index b56feea..4d25e83 100644 --- a/include/yazpp/socket-manager.h +++ b/include/yazpp/socket-manager.h @@ -1,5 +1,5 @@ /* This file is part of the yazpp toolkit. - * Copyright (C) 1998-2011 Index Data and Mike Taylor + * Copyright (C) Index Data * All rights reserved. * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -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(); };