Eris  1.3.19
PollDefault.h
1 #ifndef ERIS_POLL_DEFAULT_H
2 #define ERIS_POLL_DEFAULT_H
3 
4 #include <Eris/Poll.h>
5 
6 #include <sigc++/trackable.h>
7 
8 #include <map>
9 
10 namespace Eris {
11 
12 class PollDefault : public Poll, virtual public sigc::trackable
13 {
14 public:
15  PollDefault() {}
16 // PollDefault(const sigc::slot<bool> &s) : _prePoll(s) {}
17  virtual ~PollDefault() {}
18 
19  virtual int maxStreams() const;
20  virtual int maxConnectingStreams() const;
21 
22  virtual void addStream(const basic_socket*, Check);
23  virtual void changeStream(const basic_socket*, Check);
24  virtual void removeStream(const basic_socket*);
25 
26  static void poll(unsigned long timeout = 0);
27 
28  typedef std::map<const basic_socket*,Check> MapType;
29 private:
30  MapType _streams;
31  typedef MapType::iterator _iter;
32 
33  void doPoll(unsigned long timeout);
34 
35 // sigc::slot<bool> _prePoll;
36 };
37 
38 } // namespace Eris
39 
40 #endif // ERIS_POLL_DEFAULT_H