IBR-DTNSuite  0.8
daemon/src/StandByManager.h
Go to the documentation of this file.
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_ */