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 DelayModelTable_CLASS
00035 #define DelayModelTable_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 <Tag.h>
00051 using asdm::Tag;
00052
00053 #include <ArrayTimeInterval.h>
00054 using asdm::ArrayTimeInterval;
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081 #include <ConversionException.h>
00082 #include <DuplicateKey.h>
00083 #include <UniquenessViolationException.h>
00084 #include <NoSuchRow.h>
00085 #include <DuplicateKey.h>
00086 using asdm::DuplicateKey;
00087 using asdm::ConversionException;
00088 using asdm::NoSuchRow;
00089 using asdm::DuplicateKey;
00090
00091 #ifndef WITHOUT_ACS
00092 #include <asdmIDLC.h>
00093 using asdmIDL::DelayModelTableIDL;
00094 #endif
00095
00096 #include <Representable.h>
00097
00098 namespace asdm {
00099
00100
00101
00102
00103 class ASDM;
00104 class DelayModelRow;
00213 class DelayModelTable : public Representable {
00214 friend class ASDM;
00215
00216 public:
00217
00218
00224 static vector<string> getKeyName();
00225
00226
00227 virtual ~DelayModelTable();
00228
00234 ASDM &getContainer() const;
00235
00241 unsigned int size() ;
00242
00248 string getName() const;
00249
00255 static const vector<string>& getAttributesNames();
00256
00260 Entity getEntity() const;
00261
00266 void setEntity(Entity e);
00267
00275 string toXML() ;
00276
00277 #ifndef WITHOUT_ACS
00278
00284 DelayModelTableIDL *toIDL() ;
00285 #endif
00286
00287 #ifndef WITHOUT_ACS
00288
00294 void fromIDL(DelayModelTableIDL x) ;
00295 #endif
00296
00297
00298
00299
00300
00305 DelayModelRow *newRow();
00306
00307
00329 DelayModelRow *newRow(Tag antennaId, ArrayTimeInterval timeInterval, ArrayTime timeOrigin, int numPoly, vector<double > atmDryDelay, vector<double > atmWetDelay, vector<double > clockDelay, vector<double > geomDelay);
00330
00331
00332
00345 DelayModelRow *newRow(DelayModelRow *row);
00346
00347
00348
00349
00350
00351
00368 DelayModelRow* add(DelayModelRow* x) ;
00369
00370
00371
00372
00373
00374
00375
00376
00377
00383 vector<DelayModelRow *> get() ;
00384
00385
00393 vector <DelayModelRow*> *getByContext(Tag antennaId);
00394
00395
00396
00397
00398
00410 DelayModelRow* getRowByKey(Tag antennaId, ArrayTimeInterval timeInterval);
00411
00412
00413
00414
00415
00439 DelayModelRow* lookup(Tag antennaId, ArrayTimeInterval timeInterval, ArrayTime timeOrigin, int numPoly, vector<double > atmDryDelay, vector<double > atmWetDelay, vector<double > clockDelay, vector<double > geomDelay);
00440
00441
00442 private:
00443
00452 DelayModelTable (ASDM & container);
00453
00454 ASDM & container;
00455
00456 bool archiveAsBin;
00457 bool fileAsBin ;
00458
00459 Entity entity;
00460
00461
00462
00466 static string tableName;
00467
00471 static const vector<string> attributesNames;
00472
00476 static vector<string> initAttributesNames();
00477
00478
00482 static vector<string> key;
00483
00484
00492 DelayModelRow* checkAndAdd(DelayModelRow* x) ;
00493
00494
00495
00496
00504 DelayModelRow * insertByStartTime(DelayModelRow* x, vector<DelayModelRow* >& row);
00505
00506
00507
00508
00509
00510
00511 vector<DelayModelRow * > privateRows;
00512
00513
00514
00515
00516
00517
00518
00519
00520 typedef vector <DelayModelRow* > TIME_ROWS;
00521 map<string, TIME_ROWS > context;
00522
00527 string Key(Tag antennaId) ;
00528
00529
00530
00531
00537 void getByKeyNoAutoIncNoTime(vector <DelayModelRow*>& vin, vector <DelayModelRow*>& vout, Tag antennaId);
00538
00539
00540
00541 void error() ;
00542
00543
00550 void fromXML(string xmlDoc) ;
00551
00556 void setFromMIMEFile(const string& directory);
00557 void setFromXMLFile(const string& directory);
00558
00566 string toMIME(const asdm::ByteOrder* byteOrder=asdm::ByteOrder::Machine_Endianity);
00567
00568
00575 void setFromMIME(const string & mimeMsg);
00576
00580 string MIMEXMLPart(const asdm::ByteOrder* byteOrder=asdm::ByteOrder::Machine_Endianity);
00581
00591 void toFile(string directory);
00592
00601 void setFromFile(const string& directory);
00602
00603 };
00604
00605 }
00606
00607 #endif