00001 00002 #ifndef DEVPOLL 00003 #define DEVPOLL 00004 00005 #include "std/support.H" 00006 00007 // DEVpoll defines an interface for pollable devices. 00008 // 00009 00010 class DEVpoll 00011 { 00012 protected: 00013 static ARRAY<DEVpoll *> _pollable; 00014 00015 public: 00016 virtual ~DEVpoll() {} 00017 DEVpoll() {} 00018 00019 virtual void exec_poll() = 0; 00020 00021 static void add_pollable( DEVpoll *dp ) { _pollable += dp; } 00022 static void rem_pollable( DEVpoll *dp ) { _pollable -= dp; } 00023 00024 static ARRAY<DEVpoll *> &pollable() { return _pollable; } 00025 }; 00026 00027 #endif 00028