IBR-DTNSuite
0.8
|
00001 /* 00002 * StandByManager.h 00003 * 00004 * Created on: 29.03.2012 00005 * Author: jm 00006 */ 00007 00008 #ifndef STANDBYMANAGER_H_ 00009 #define STANDBYMANAGER_H_ 00010 00011 #include "Component.h" 00012 #include "core/EventReceiver.h" 00013 #include <ibrcommon/thread/Mutex.h> 00014 #include <list> 00015 00016 namespace dtn { 00017 namespace daemon { 00018 class StandByManager : public dtn::core::EventReceiver, public IntegratedComponent { 00019 public: 00020 StandByManager(); 00021 virtual ~StandByManager(); 00022 00023 void adopt(Component *c); 00024 00025 virtual void raiseEvent(const dtn::core::Event *evt); 00026 00027 virtual void componentUp(); 00028 virtual void componentDown(); 00029 00030 virtual const std::string getName() const; 00031 00032 private: 00033 void wakeup(); 00034 void suspend(); 00035 00036 std::list<Component*> _components; 00037 ibrcommon::Mutex _lock; 00038 bool _suspended; 00039 bool _enabled; 00040 }; 00041 } /* namespace daemon */ 00042 } /* namespace dtn */ 00043 #endif /* STANDBYMANAGER_H_ */