Eris
1.3.19
|
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