CFieldCode.h
Go to the documentation of this file.00001
00002 #ifndef CFieldCode_H
00003 #define CFieldCode_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 FieldCodeMod
00055 {
00058
00059 const char *const revision = "-1";
00060 const int version = 1;
00061
00062 enum FieldCode
00063 {
00064 NONE
00066 };
00067 typedef FieldCode &FieldCode_out;
00068 }
00069 #endif
00070
00071 namespace FieldCodeMod {
00072 std::ostream & operator << ( std::ostream & out, const FieldCode& value);
00073 std::istream & operator >> ( std::istream & in , FieldCode& value );
00074 }
00075
00080 class CFieldCode {
00081 public:
00082
00087 static const std::string& sNONE;
00094 static int version() ;
00095
00096
00102 static std::string revision() ;
00103
00104
00109 static unsigned int size() ;
00110
00111
00117 static std::string name(const FieldCodeMod::FieldCode& e);
00118
00122 static std::string toString(const FieldCodeMod::FieldCode& f) { return name(f); }
00123
00129 static const std::vector<std::string> names();
00130
00131
00132
00133 static FieldCodeMod::FieldCode newFieldCode(const std::string& name);
00134
00140 static FieldCodeMod::FieldCode literal(const std::string& name);
00141
00147 static FieldCodeMod::FieldCode from_int(unsigned int i);
00148
00149
00150 private:
00151
00152 CFieldCode();
00153 CFieldCode(const CFieldCode&);
00154 CFieldCode& operator=(const CFieldCode&);
00155
00156 static std::string badString(const std::string& name) ;
00157 static std::string badInt(unsigned int i) ;
00158
00159 };
00160
00161 #endif