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 SwitchCycleTable_CLASS
00035 #define SwitchCycleTable_CLASS
00036
00037 #include <string>
00038 #include <vector>
00039 #include <map>
00040 #include <set>
00041 using std::string;
00042 using std::vector;
00043 using std::map;
00044
00045
00046
00047 #include <ArrayTime.h>
00048 using asdm::ArrayTime;
00049
00050 #include <Angle.h>
00051 using asdm::Angle;
00052
00053 #include <Interval.h>
00054 using asdm::Interval;
00055
00056 #include <Tag.h>
00057 using asdm::Tag;
00058
00059 #include <Frequency.h>
00060 using asdm::Frequency;
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078 #include "CDirectionReferenceCode.h"
00079 using namespace DirectionReferenceCodeMod;
00080
00081
00082
00083
00084
00085
00086 #include <ConversionException.h>
00087 #include <DuplicateKey.h>
00088 #include <UniquenessViolationException.h>
00089 #include <NoSuchRow.h>
00090 #include <DuplicateKey.h>
00091 using asdm::DuplicateKey;
00092 using asdm::ConversionException;
00093 using asdm::NoSuchRow;
00094 using asdm::DuplicateKey;
00095
00096 #ifndef WITHOUT_ACS
00097 #include <asdmIDLC.h>
00098 using asdmIDL::SwitchCycleTableIDL;
00099 #endif
00100
00101 #include <Representable.h>
00102
00103 namespace asdm {
00104
00105
00106
00107
00108 class ASDM;
00109 class SwitchCycleRow;
00195 class SwitchCycleTable : public Representable {
00196 friend class ASDM;
00197
00198 public:
00199
00200
00206 static vector<string> getKeyName();
00207
00208
00209 virtual ~SwitchCycleTable();
00210
00216 ASDM &getContainer() const;
00217
00223 unsigned int size() ;
00224
00230 string getName() const;
00231
00237 static const vector<string>& getAttributesNames();
00238
00242 Entity getEntity() const;
00243
00248 void setEntity(Entity e);
00249
00257 string toXML() ;
00258
00259 #ifndef WITHOUT_ACS
00260
00266 SwitchCycleTableIDL *toIDL() ;
00267 #endif
00268
00269 #ifndef WITHOUT_ACS
00270
00276 void fromIDL(SwitchCycleTableIDL x) ;
00277 #endif
00278
00279
00280
00281
00282
00287 SwitchCycleRow *newRow();
00288
00289
00305 SwitchCycleRow *newRow(int numStep, vector<float > weightArray, vector<vector<Angle > > dirOffsetArray, vector<Frequency > freqOffsetArray, vector<Interval > stepDurationArray);
00306
00307
00308
00321 SwitchCycleRow *newRow(SwitchCycleRow *row);
00322
00323
00324
00325
00326
00327
00328
00329
00339 SwitchCycleRow* add(SwitchCycleRow* x) ;
00340
00341
00342
00343
00344
00345
00346
00352 vector<SwitchCycleRow *> get() ;
00353
00354
00355
00356
00357
00367 SwitchCycleRow* getRowByKey(Tag switchCycleId);
00368
00369
00370
00371
00372
00390 SwitchCycleRow* lookup(int numStep, vector<float > weightArray, vector<vector<Angle > > dirOffsetArray, vector<Frequency > freqOffsetArray, vector<Interval > stepDurationArray);
00391
00392
00393 private:
00394
00403 SwitchCycleTable (ASDM & container);
00404
00405 ASDM & container;
00406
00407 bool archiveAsBin;
00408 bool fileAsBin ;
00409
00410 Entity entity;
00411
00412
00413
00414 map<string,int> noAutoIncIds;
00415 void autoIncrement(string key, SwitchCycleRow* x);
00416
00417
00421 static string tableName;
00422
00426 static const vector<string> attributesNames;
00427
00431 static vector<string> initAttributesNames();
00432
00433
00437 static vector<string> key;
00438
00439
00449 SwitchCycleRow* checkAndAdd(SwitchCycleRow* x) ;
00450
00451
00452
00453
00454
00455
00456 vector<SwitchCycleRow * > privateRows;
00457
00458
00459
00460 vector<SwitchCycleRow *> row;
00461
00462
00463 void error() ;
00464
00465
00472 void fromXML(string xmlDoc) ;
00473
00478 void setFromMIMEFile(const string& directory);
00479 void setFromXMLFile(const string& directory);
00480
00488 string toMIME(const asdm::ByteOrder* byteOrder=asdm::ByteOrder::Machine_Endianity);
00489
00490
00497 void setFromMIME(const string & mimeMsg);
00498
00502 string MIMEXMLPart(const asdm::ByteOrder* byteOrder=asdm::ByteOrder::Machine_Endianity);
00503
00513 void toFile(string directory);
00514
00523 void setFromFile(const string& directory);
00524
00525 };
00526
00527 }
00528
00529 #endif