00001
00002
00003
00004
00005
00006
00007
00008 #ifndef TIMESOURCE_H
00009 #define TIMESOURCE_H
00010
00011
00012
00013 #include <string>
00014 #include <vector>
00015
00016 #include "AnnotatorCommApi.h"
00017
00018 using namespace std;
00019
00020
00021
00022 namespace annotatorcomm
00023 {
00024
00028 class ANNCOMM_API TimeSource
00029 {
00030 public:
00031 static const TimeSource INTERNAL_CLOCK;
00032 static const TimeSource IRIG_A_AM;
00033 static const TimeSource IRIG_A_MANCHESTER;
00034 static const TimeSource IRIG_A_DC;
00035 static const TimeSource IRIG_B_AM;
00036 static const TimeSource IRIG_B_MANCHESTER;
00037 static const TimeSource IRIG_B_DC;
00038 static const TimeSource IRIG_D_AM;
00039 static const TimeSource IRIG_D_MANCHESTER;
00040 static const TimeSource IRIG_D_DC;
00041 static const TimeSource IRIG_E_AM;
00042 static const TimeSource IRIG_E_MANCHESTER;
00043 static const TimeSource IRIG_E_DC;
00044 static const TimeSource IRIG_G_AM;
00045 static const TimeSource IRIG_G_MANCHESTER;
00046 static const TimeSource IRIG_G_DC;
00047 static const TimeSource IRIG_H_AM;
00048 static const TimeSource IRIG_H_MANCHESTER;
00049 static const TimeSource IRIG_H_DC;
00050 static const TimeSource GPS;
00051
00057 static vector<const TimeSource*> values();
00058
00059 public:
00065 uint64_t getTimeSource() const;
00066
00072 string toString() const;
00073
00074 private:
00078 const uint64_t source;
00079
00083 const string name;
00084
00091 TimeSource(const uint64_t source, const string & name);
00092 };
00093
00101 ANNCOMM_API ostream& operator<<(ostream& out, const TimeSource & source);
00102
00103 }
00104
00105
00106
00107 #endif