X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Fyazpp%2Fsocket-manager.h;h=24469d51f97f86ab1cf44d11e73514eacc259be0;hb=73c9f3dfff68f316750bcd87b044e0d636d5070f;hp=7d5001ef5f1d7e10a1c146bbfa5d1d217a84e098;hpb=4b3585940162cf9ca65ca4a6914c0addcde50eef;p=yazpp-moved-to-github.git diff --git a/include/yazpp/socket-manager.h b/include/yazpp/socket-manager.h index 7d5001e..24469d5 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-2008 Index Data and Mike Taylor + * Copyright (C) 1998-2012 Index Data and Mike Taylor * 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(); }; @@ -91,6 +68,7 @@ class YAZ_EXPORT SocketManager : public ISocketObservable { /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab