CSBType.h
Go to the documentation of this file.00001
00002 #ifndef CSBType_H
00003 #define CSBType_H
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 #ifndef __cplusplus
00040 #error This is a C++ include file and cannot be used from plain C
00041 #endif
00042
00043 #include <iostream>
00044 #include <string>
00045 #include <vector>
00049 #ifndef WITHOUT_ACS
00050 #include <almaEnumerations_IFC.h>
00051 #else
00052
00053
00054 namespace SBTypeMod
00055 {
00058
00059 const char *const revision = "-1";
00060 const int version = 1;
00061
00062 enum SBType
00063 {
00064 OBSERVATORY
00065 ,
00066 OBSERVER
00067 ,
00068 EXPERT
00070 };
00071 typedef SBType &SBType_out;
00072 }
00073 #endif
00074
00075 namespace SBTypeMod {
00076 std::ostream & operator << ( std::ostream & out, const SBType& value);
00077 std::istream & operator >> ( std::istream & in , SBType& value );
00078 }
00079
00084 class CSBType {
00085 public:
00086
00091 static const std::string& sOBSERVATORY;
00093 static const std::string& sOBSERVER;
00095 static const std::string& sEXPERT;
00102 static int version() ;
00103
00104
00110 static std::string revision() ;
00111
00112
00117 static unsigned int size() ;
00118
00119
00125 static std::string name(const SBTypeMod::SBType& e);
00126
00130 static std::string toString(const SBTypeMod::SBType& f) { return name(f); }
00131
00137 static const std::vector<std::string> names();
00138
00139
00140
00141 static SBTypeMod::SBType newSBType(const std::string& name);
00142
00148 static SBTypeMod::SBType literal(const std::string& name);
00149
00155 static SBTypeMod::SBType from_int(unsigned int i);
00156
00157
00158 private:
00159
00160 CSBType();
00161 CSBType(const CSBType&);
00162 CSBType& operator=(const CSBType&);
00163
00164 static std::string badString(const std::string& name) ;
00165 static std::string badInt(unsigned int i) ;
00166
00167 };
00168
00169 #endif