Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members

Poll.h

00001 #ifndef ERIS_POLL_H 00002 #define ERIS_POLL_H 00003 00004 #include <sigc++/signal.h> 00005 00006 // Forward declaration from skstream 00007 class basic_socket_stream; 00008 00009 namespace Eris { 00010 00011 class PollData 00012 { 00013 public: 00014 PollData() {} 00015 virtual ~PollData() {} 00016 00017 virtual bool isReady(const basic_socket_stream*) = 0; 00018 }; 00019 00020 class Poll : public SigC::Signal1<void,PollData&> 00021 { 00022 public: 00023 Poll() {} 00024 virtual ~Poll() {} 00025 00026 enum Check { 00027 READ = 1, 00028 WRITE = 2, 00029 MASK = READ | WRITE 00030 }; 00031 00032 virtual void addStream(const basic_socket_stream*, Check = READ) = 0; 00033 virtual void changeStream(const basic_socket_stream*, Check) = 0; 00034 virtual void removeStream(const basic_socket_stream*) = 0; 00035 00036 static Poll& instance(); 00037 static void setInstance(Poll*); 00038 00039 static void newTimeout() {new_timeout_ = true;} 00040 00041 private: 00042 Poll(const Poll&); 00043 static Poll *_inst; 00044 protected: 00045 static bool new_timeout_; 00046 }; 00047 00048 } // namespace Eris 00049 00050 #endif // ERIS_POLL_H

Generated on Tue Jul 27 21:00:43 2004 for Eris by doxygen 1.3.7