CCorrelatorName.h
Go to the documentation of this file.00001
00002 #ifndef CCorrelatorName_H
00003 #define CCorrelatorName_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 CorrelatorNameMod
00055 {
00058
00059 const char *const revision = "-1";
00060 const int version = 1;
00061
00062 enum CorrelatorName
00063 {
00064 ALMA_ACA
00065 ,
00066 ALMA_BASELINE
00067 ,
00068 ALMA_BASELINE_ATF
00069 ,
00070 ALMA_BASELINE_PROTO_OSF
00071 ,
00072 HERSCHEL
00073 ,
00074 IRAM_PDB
00075 ,
00076 IRAM_30M_VESPA
00077 ,
00078 IRAM_WILMA
00079 ,
00080 NRAO_VLA
00081 ,
00082 NRAO_WIDAR
00084 };
00085 typedef CorrelatorName &CorrelatorName_out;
00086 }
00087 #endif
00088
00089 namespace CorrelatorNameMod {
00090 std::ostream & operator << ( std::ostream & out, const CorrelatorName& value);
00091 std::istream & operator >> ( std::istream & in , CorrelatorName& value );
00092 }
00093
00098 class CCorrelatorName {
00099 public:
00100
00105 static const std::string& sALMA_ACA;
00107 static const std::string& sALMA_BASELINE;
00109 static const std::string& sALMA_BASELINE_ATF;
00111 static const std::string& sALMA_BASELINE_PROTO_OSF;
00113 static const std::string& sHERSCHEL;
00115 static const std::string& sIRAM_PDB;
00117 static const std::string& sIRAM_30M_VESPA;
00119 static const std::string& sIRAM_WILMA;
00121 static const std::string& sNRAO_VLA;
00123 static const std::string& sNRAO_WIDAR;
00130 static int version() ;
00131
00132
00138 static std::string revision() ;
00139
00140
00145 static unsigned int size() ;
00146
00147
00153 static std::string name(const CorrelatorNameMod::CorrelatorName& e);
00154
00158 static std::string toString(const CorrelatorNameMod::CorrelatorName& f) { return name(f); }
00159
00165 static const std::vector<std::string> names();
00166
00167
00168
00169 static CorrelatorNameMod::CorrelatorName newCorrelatorName(const std::string& name);
00170
00176 static CorrelatorNameMod::CorrelatorName literal(const std::string& name);
00177
00183 static CorrelatorNameMod::CorrelatorName from_int(unsigned int i);
00184
00185
00186 private:
00187
00188 CCorrelatorName();
00189 CCorrelatorName(const CCorrelatorName&);
00190 CCorrelatorName& operator=(const CCorrelatorName&);
00191
00192 static std::string badString(const std::string& name) ;
00193 static std::string badInt(unsigned int i) ;
00194
00195 };
00196
00197 #endif