00001
00002
00003
00004
00005
00006
00007
00008 #ifndef WALLCLOCK_H_
00009 #define WALLCLOCK_H_
00010
00011 #include <ibrcommon/thread/Thread.h>
00012 #include <ibrcommon/thread/WaitForConditional.h>
00013 #include "Component.h"
00014
00015 namespace dtn
00016 {
00017 namespace core
00018 {
00019 class WallClock : public ibrcommon::WaitForConditional, public dtn::daemon::IndependentComponent
00020 {
00021 public:
00026 WallClock(size_t frequency);
00027 virtual ~WallClock();
00028
00032 void sync();
00033
00034 protected:
00035 virtual void componentUp();
00036 virtual void componentRun();
00037 virtual void componentDown();
00038
00039 private:
00040 size_t _frequency;
00041 size_t _next;
00042 bool _running;
00043
00044 };
00045 }
00046 }
00047
00048 #endif