Eris 1.3.18
PollDefault.h
00001 #ifndef ERIS_POLL_DEFAULT_H
00002 #define ERIS_POLL_DEFAULT_H 
00003 
00004 #include <Eris/Poll.h>
00005 
00006 #include <sigc++/trackable.h>
00007 
00008 #include <map>
00009 
00010 namespace Eris {
00011 
00012 class PollDefault : public Poll, virtual public sigc::trackable
00013 {
00014 public:
00015         PollDefault() {}
00016 //      PollDefault(const sigc::slot<bool> &s) : _prePoll(s) {}
00017         virtual ~PollDefault() {}
00018 
00019         virtual int maxStreams() const;
00020         virtual int maxConnectingStreams() const;
00021 
00022         virtual void addStream(const basic_socket*, Check);
00023         virtual void changeStream(const basic_socket*, Check);
00024         virtual void removeStream(const basic_socket*);
00025 
00026         static void poll(unsigned long timeout = 0);
00027 
00028         typedef std::map<const basic_socket*,Check> MapType;
00029 private:
00030         MapType _streams;
00031         typedef MapType::iterator _iter;
00032 
00033         void doPoll(unsigned long timeout);
00034 
00035 //      sigc::slot<bool> _prePoll;
00036 };
00037 
00038 } // namespace Eris
00039 
00040 #endif // ERIS_POLL_DEFAULT_H