00001 #ifndef MNT_PUMP_H 00002 #define MNT_PUMP_H 00003 00004 #include "timer.h" 00005 #include "mnt_component.h" 00006 00023 class MntPump: public MntComponent 00024 { 00025 private: 00026 int running_; 00028 public: 00029 00038 class PumpTimer : public Timer { 00039 public : 00040 MntPump *reader_; 00042 void timeout() { 00043 reader_->pump_some(); 00044 } 00045 } pump_timer_; 00046 00050 MntPump() 00051 { 00052 } 00053 00058 inline virtual void 00059 start_pumping() 00060 { 00061 running_ = 1; 00062 pump_some(); 00063 } 00064 00068 inline virtual void 00069 stop_pumping() 00070 { 00071 running_ = 0; 00072 eval_instproc("on_stop_pumping"); 00073 } 00074 00078 inline virtual int 00079 pump_some() 00080 { 00081 return 0; 00082 } 00083 00087 inline virtual int 00088 is_running() 00089 { 00090 return running_; 00091 } 00092 00097 int command(int argc, const char*const* argv); 00098 }; 00099 00100 #endif