Go to the documentation of this file.00001
00002
00003
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 #ifndef BeamRow_CLASS
00035 #define BeamRow_CLASS
00036
00037 #include <vector>
00038 #include <string>
00039 #include <set>
00040 using std::vector;
00041 using std::string;
00042 using std::set;
00043
00044 #ifndef WITHOUT_ACS
00045 #include <asdmIDLC.h>
00046 using asdmIDL::BeamRowIDL;
00047 #endif
00048
00049
00050
00051
00052
00053
00054 #include <Tag.h>
00055 using asdm::Tag;
00056
00057
00058
00059
00060
00061
00062
00063
00064 #include <ConversionException.h>
00065 #include <NoSuchRow.h>
00066 #include <IllegalAccessException.h>
00067
00068
00069
00070
00071
00072
00073 namespace asdm {
00074
00075
00076
00077
00078
00079 class BeamRow;
00080 typedef void (BeamRow::*BeamAttributeFromBin) (EndianISStream& eiss);
00081
00088 class BeamRow {
00089 friend class asdm::BeamTable;
00090
00091 public:
00092
00093 virtual ~BeamRow();
00094
00098 BeamTable &getTable() const;
00099
00104 bool isAdded() const;
00105
00107
00109
00110
00111
00112
00113
00114
00115
00116
00121 Tag getBeamId() const;
00122
00123
00124
00125
00126
00127
00128
00129
00131
00133
00135
00137
00138
00139
00140
00141
00142
00143
00152 bool equalByRequiredValue(BeamRow* x) ;
00153
00154 #ifndef WITHOUT_ACS
00155
00159 BeamRowIDL *toIDL() const;
00160 #endif
00161
00162 #ifndef WITHOUT_ACS
00163
00168 void setFromIDL (BeamRowIDL x) ;
00169 #endif
00170
00175 string toXML() const;
00176
00183 void setFromXML (string rowDoc) ;
00184
00185 private:
00189 BeamTable &table;
00193 bool hasBeenAdded;
00194
00195
00196 void isAdded(bool added);
00197
00198
00207 BeamRow (BeamTable &table);
00208
00226 BeamRow (BeamTable &table, BeamRow &row);
00227
00229
00231
00232
00233
00234
00235
00236
00237 Tag beamId;
00238
00239
00240
00241
00251 void setBeamId (Tag beamId);
00252
00253
00254
00256
00258
00260
00262
00263
00265
00267 map<string, BeamAttributeFromBin> fromBinMethods;
00268 void beamIdFromBin( EndianISStream& eiss);
00269
00270
00271
00276 void toBin(EndianOSStream& eoss);
00277
00285 static BeamRow* fromBin(EndianISStream& eiss, BeamTable& table, const vector<string>& attributesSeq);
00286
00287 };
00288
00289 }
00290
00291 #endif