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 WVMCalRow_CLASS
00035 #define WVMCalRow_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::WVMCalRowIDL;
00047 #endif
00048
00049
00050
00051
00052
00053
00054 #include <Tag.h>
00055 using asdm::Tag;
00056
00057 #include <Frequency.h>
00058 using asdm::Frequency;
00059
00060 #include <ArrayTimeInterval.h>
00061 using asdm::ArrayTimeInterval;
00062
00063
00064
00065
00066
00067
00068
00069 #include "CWVRMethod.h"
00070 using namespace WVRMethodMod;
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085 #include <ConversionException.h>
00086 #include <NoSuchRow.h>
00087 #include <IllegalAccessException.h>
00088
00089
00090
00091
00092
00093
00094 namespace asdm {
00095
00096
00097
00098
00099
00100 class SpectralWindowRow;
00101
00102
00103 class AntennaRow;
00104
00105
00106 class WVMCalRow;
00107 typedef void (WVMCalRow::*WVMCalAttributeFromBin) (EndianISStream& eiss);
00108
00115 class WVMCalRow {
00116 friend class asdm::WVMCalTable;
00117
00118 public:
00119
00120 virtual ~WVMCalRow();
00121
00125 WVMCalTable &getTable() const;
00126
00131 bool isAdded() const;
00132
00134
00136
00137
00138
00139
00140
00141
00142
00143
00148 ArrayTimeInterval getTimeInterval() const;
00149
00150
00151
00152
00162 void setTimeInterval (ArrayTimeInterval timeInterval);
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00180 WVRMethodMod::WVRMethod getWvrMethod() const;
00181
00182
00183
00184
00192 void setWvrMethod (WVRMethodMod::WVRMethod wvrMethod);
00193
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203
00204
00205
00210 vector<Frequency > getPolyFreqLimits() const;
00211
00212
00213
00214
00222 void setPolyFreqLimits (vector<Frequency > polyFreqLimits);
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234
00235
00240 int getNumChan() const;
00241
00242
00243
00244
00252 void setNumChan (int numChan);
00253
00254
00255
00256
00257
00258
00259
00260
00261
00262
00263
00264
00265
00270 int getNumPoly() const;
00271
00272
00273
00274
00282 void setNumPoly (int numPoly);
00283
00284
00285
00286
00287
00288
00289
00290
00291
00292
00293
00294
00295
00300 vector<vector<double > > getPathCoeff() const;
00301
00302
00303
00304
00312 void setPathCoeff (vector<vector<double > > pathCoeff);
00313
00314
00315
00316
00317
00318
00319
00320
00321
00322
00323
00324
00325
00330 vector<double > getRefTemp() const;
00331
00332
00333
00334
00342 void setRefTemp (vector<double > refTemp);
00343
00344
00345
00346
00347
00348
00350
00352
00353
00354
00355
00356
00357
00358
00359
00364 Tag getAntennaId() const;
00365
00366
00367
00368
00378 void setAntennaId (Tag antennaId);
00379
00380
00381
00382
00383
00384
00385
00386
00387
00388
00389
00390
00391
00396 Tag getSpectralWindowId() const;
00397
00398
00399
00400
00410 void setSpectralWindowId (Tag spectralWindowId);
00411
00412
00413
00414
00415
00416
00418
00420
00421
00422
00423
00424
00431 SpectralWindowRow* getSpectralWindowUsingSpectralWindowId();
00432
00433
00434
00435
00436
00437
00438
00439
00446 AntennaRow* getAntennaUsingAntennaId();
00447
00448
00449
00450
00451
00452
00453
00477 bool compareNoAutoInc(Tag antennaId, Tag spectralWindowId, ArrayTimeInterval timeInterval, WVRMethodMod::WVRMethod wvrMethod, vector<Frequency > polyFreqLimits, int numChan, int numPoly, vector<vector<double > > pathCoeff, vector<double > refTemp);
00478
00479
00480
00481
00499 bool compareRequiredValue(WVRMethodMod::WVRMethod wvrMethod, vector<Frequency > polyFreqLimits, int numChan, int numPoly, vector<vector<double > > pathCoeff, vector<double > refTemp);
00500
00501
00510 bool equalByRequiredValue(WVMCalRow* x) ;
00511
00512 #ifndef WITHOUT_ACS
00513
00517 WVMCalRowIDL *toIDL() const;
00518 #endif
00519
00520 #ifndef WITHOUT_ACS
00521
00526 void setFromIDL (WVMCalRowIDL x) ;
00527 #endif
00528
00533 string toXML() const;
00534
00541 void setFromXML (string rowDoc) ;
00542
00543 private:
00547 WVMCalTable &table;
00551 bool hasBeenAdded;
00552
00553
00554 void isAdded(bool added);
00555
00556
00565 WVMCalRow (WVMCalTable &table);
00566
00584 WVMCalRow (WVMCalTable &table, WVMCalRow &row);
00585
00587
00589
00590
00591
00592
00593
00594
00595 ArrayTimeInterval timeInterval;
00596
00597
00598
00599
00600
00601
00602
00603
00604
00605
00606 WVRMethodMod::WVRMethod wvrMethod;
00607
00608
00609
00610
00611
00612
00613
00614
00615
00616
00617 vector<Frequency > polyFreqLimits;
00618
00619
00620
00621
00622
00623
00624
00625
00626
00627
00628 int numChan;
00629
00630
00631
00632
00633
00634
00635
00636
00637
00638
00639 int numPoly;
00640
00641
00642
00643
00644
00645
00646
00647
00648
00649
00650 vector<vector<double > > pathCoeff;
00651
00652
00653
00654
00655
00656
00657
00658
00659
00660
00661 vector<double > refTemp;
00662
00663
00664
00665
00666
00668
00670
00671
00672
00673
00674
00675
00676 Tag antennaId;
00677
00678
00679
00680
00681
00682
00683
00684
00685
00686
00687 Tag spectralWindowId;
00688
00689
00690
00691
00692
00694
00696
00697
00698
00699
00700
00701
00702
00703
00704
00705
00706
00707
00708
00709
00710
00711
00713
00715 map<string, WVMCalAttributeFromBin> fromBinMethods;
00716 void antennaIdFromBin( EndianISStream& eiss);
00717 void spectralWindowIdFromBin( EndianISStream& eiss);
00718 void timeIntervalFromBin( EndianISStream& eiss);
00719 void wvrMethodFromBin( EndianISStream& eiss);
00720 void polyFreqLimitsFromBin( EndianISStream& eiss);
00721 void numChanFromBin( EndianISStream& eiss);
00722 void numPolyFromBin( EndianISStream& eiss);
00723 void pathCoeffFromBin( EndianISStream& eiss);
00724 void refTempFromBin( EndianISStream& eiss);
00725
00726
00727
00732 void toBin(EndianOSStream& eoss);
00733
00741 static WVMCalRow* fromBin(EndianISStream& eiss, WVMCalTable& table, const vector<string>& attributesSeq);
00742
00743 };
00744
00745 }
00746
00747 #endif