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 ConfigDescriptionRow_CLASS
00035 #define ConfigDescriptionRow_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::ConfigDescriptionRowIDL;
00047 #endif
00048
00049 #include <Angle.h>
00050 #include <AngularRate.h>
00051 #include <ArrayTime.h>
00052 #include <ArrayTimeInterval.h>
00053 #include <Complex.h>
00054 #include <Entity.h>
00055 #include <EntityId.h>
00056 #include <EntityRef.h>
00057 #include <Flux.h>
00058 #include <Frequency.h>
00059 #include <Humidity.h>
00060 #include <Interval.h>
00061 #include <Length.h>
00062 #include <Pressure.h>
00063 #include <Speed.h>
00064 #include <Tag.h>
00065 #include <Temperature.h>
00066 #include <ConversionException.h>
00067 #include <NoSuchRow.h>
00068 #include <IllegalAccessException.h>
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087 #include "CCorrelationMode.h"
00088 using namespace CorrelationModeMod;
00089
00090
00091
00092
00093
00094
00095
00096 #include "CAtmPhaseCorrection.h"
00097 using namespace AtmPhaseCorrectionMod;
00098
00099
00100
00101 #include "CSpectralResolutionType.h"
00102 using namespace SpectralResolutionTypeMod;
00103
00104
00105
00106
00107 using asdm::Angle;
00108 using asdm::AngularRate;
00109 using asdm::ArrayTime;
00110 using asdm::Complex;
00111 using asdm::Entity;
00112 using asdm::EntityId;
00113 using asdm::EntityRef;
00114 using asdm::Flux;
00115 using asdm::Frequency;
00116 using asdm::Humidity;
00117 using asdm::Interval;
00118 using asdm::Length;
00119 using asdm::Pressure;
00120 using asdm::Speed;
00121 using asdm::Tag;
00122 using asdm::Temperature;
00123 using asdm::ConversionException;
00124 using asdm::NoSuchRow;
00125 using asdm::IllegalAccessException;
00126
00127
00128
00129
00130
00131 namespace asdm {
00132
00133
00134
00135
00136
00137 class ProcessorRow;
00138
00139
00140 class AntennaRow;
00141
00142
00143 class DataDescriptionRow;
00144
00145
00146 class SwitchCycleRow;
00147
00148
00149 class FeedRow;
00150
00151
00152 class ConfigDescriptionRow;
00153
00154
00161 class ConfigDescriptionRow {
00162 friend class asdm::ConfigDescriptionTable;
00163
00164 public:
00165
00166 virtual ~ConfigDescriptionRow();
00167
00171 ConfigDescriptionTable &getTable() const;
00172
00173 #ifndef WITHOUT_ACS
00174
00178 ConfigDescriptionRowIDL *toIDL() const;
00179 #endif
00180
00181 #ifndef WITHOUT_ACS
00182
00186 void setFromIDL (ConfigDescriptionRowIDL x) throw(ConversionException);
00187 #endif
00188
00193 string toXML() const;
00194
00200 void setFromXML (string rowDoc) throw(ConversionException);
00201
00203
00205
00206
00207
00208
00209
00210
00211
00212
00217 int getNumAntenna() const;
00218
00219
00220
00221
00227 void setNumAntenna (int numAntenna);
00228
00229
00230
00231
00232
00233
00234
00235
00236
00237
00238
00239
00240
00245 int getNumFeed() const;
00246
00247
00248
00249
00255 void setNumFeed (int numFeed);
00256
00257
00258
00259
00260
00261
00262
00263
00264
00265
00266
00267
00268
00273 vector<int > getNumSubBand() const;
00274
00275
00276
00277
00283 void setNumSubBand (vector<int > numSubBand);
00284
00285
00286
00287
00288
00289
00290
00291
00292
00293
00294
00299 bool isPhasedArrayListExists() const;
00300
00301
00302
00308 vector<int > getPhasedArrayList() const throw(IllegalAccessException);
00309
00310
00311
00312
00318 void setPhasedArrayList (vector<int > phasedArrayList);
00319
00320
00321
00322
00326 void clearPhasedArrayList ();
00327
00328
00329
00330
00331
00332
00333
00334
00335
00336
00341 CorrelationMode getCorrelationMode() const;
00342
00343
00344
00345
00351 void setCorrelationMode (CorrelationMode correlationMode);
00352
00353
00354
00355
00356
00357
00358
00359
00360
00361
00362
00367 bool isFlagAntExists() const;
00368
00369
00370
00376 vector<bool > getFlagAnt() const throw(IllegalAccessException);
00377
00378
00379
00380
00386 void setFlagAnt (vector<bool > flagAnt);
00387
00388
00389
00390
00394 void clearFlagAnt ();
00395
00396
00397
00398
00399
00400
00401
00402
00403
00404
00409 Tag getConfigDescriptionId() const;
00410
00411
00412
00413
00414
00415
00416
00417
00418
00419
00420
00421
00422
00423
00424
00429 AtmPhaseCorrection getAtmPhaseCorrection() const;
00430
00431
00432
00433
00439 void setAtmPhaseCorrection (AtmPhaseCorrection atmPhaseCorrection);
00440
00441
00442
00443
00444
00445
00446
00447
00448
00449
00450
00455 bool isAssocNatureExists() const;
00456
00457
00458
00464 vector<SpectralResolutionType > getAssocNature() const throw(IllegalAccessException);
00465
00466
00467
00468
00474 void setAssocNature (vector<SpectralResolutionType > assocNature);
00475
00476
00477
00478
00482 void clearAssocNature ();
00483
00484
00485
00487
00489
00490
00491
00492
00493
00494
00495
00496
00501 vector<Tag> getAntennaId() const;
00502
00503
00504
00505
00511 void setAntennaId (vector<Tag> antennaId);
00512
00513
00514
00515
00516
00517
00518
00519
00520
00521
00522
00527 bool isAssocConfigDescriptionIdExists() const;
00528
00529
00530
00536 vector<Tag> getAssocConfigDescriptionId() const throw(IllegalAccessException);
00537
00538
00539
00540
00546 void setAssocConfigDescriptionId (vector<Tag> assocConfigDescriptionId);
00547
00548
00549
00550
00554 void clearAssocConfigDescriptionId ();
00555
00556
00557
00558
00559
00560
00561
00562
00563
00564
00569 vector<Tag> getDataDescriptionId() const;
00570
00571
00572
00573
00579 void setDataDescriptionId (vector<Tag> dataDescriptionId);
00580
00581
00582
00583
00584
00585
00586
00587
00588
00589
00590
00591
00592
00597 vector<int> getFeedId() const;
00598
00599
00600
00601
00607 void setFeedId (vector<int> feedId);
00608
00609
00610
00611
00612
00613
00614
00615
00616
00617
00618
00619
00620
00625 Tag getProcessorId() const;
00626
00627
00628
00629
00635 void setProcessorId (Tag processorId);
00636
00637
00638
00639
00640
00641
00642
00643
00644
00645
00646
00647
00648
00653 vector<Tag> getSwitchCycleId() const;
00654
00655
00656
00657
00663 void setSwitchCycleId (vector<Tag> switchCycleId);
00664
00665
00666
00667
00668
00669
00671
00673
00674
00675
00676
00677
00684 ProcessorRow* getProcessorUsingProcessorId();
00685
00686
00687
00688
00689
00690
00697 void setAntennaId (int i, Tag antennaId) throw(OutOfBoundsException) ;
00698
00699
00700
00701
00702
00707 void addAntennaId(Tag id);
00708
00713 void addAntennaId(const vector<Tag> & id);
00714
00715
00721 const Tag getAntennaId(int i);
00722
00730 AntennaRow* getAntenna(int i);
00731
00736 vector<AntennaRow *> getAntennas();
00737
00738
00739
00740
00741
00742
00749 void setDataDescriptionId (int i, Tag dataDescriptionId) throw(OutOfBoundsException) ;
00750
00751
00752
00753
00754
00759 void addDataDescriptionId(Tag id);
00760
00765 void addDataDescriptionId(const vector<Tag> & id);
00766
00767
00773 const Tag getDataDescriptionId(int i);
00774
00782 DataDescriptionRow* getDataDescription(int i);
00783
00788 vector<DataDescriptionRow *> getDataDescriptions();
00789
00790
00791
00792
00793
00794
00801 void setSwitchCycleId (int i, Tag switchCycleId) throw(OutOfBoundsException) ;
00802
00803
00804
00805
00806
00811 void addSwitchCycleId(Tag id);
00812
00817 void addSwitchCycleId(const vector<Tag> & id);
00818
00819
00825 const Tag getSwitchCycleId(int i);
00826
00834 SwitchCycleRow* getSwitchCycle(int i);
00835
00840 vector<SwitchCycleRow *> getSwitchCycles();
00841
00842
00843
00844
00845
00846
00853 void setFeedId (int i, int feedId) throw(OutOfBoundsException) ;
00854
00855
00856
00857
00858
00859
00860
00861
00866 void addFeedId(int id);
00867
00872 void addFeedId(vector<int> id);
00873
00874
00879 const vector <FeedRow *> getFeeds(int i);
00880
00881
00887 const vector <FeedRow *> getFeeds();
00888
00889
00890
00891
00892
00893
00894
00902 void setAssocConfigDescriptionId (int i, Tag assocConfigDescriptionId) throw(IllegalAccessException, OutOfBoundsException);
00903
00904
00905
00906
00907
00912 void addAssocConfigDescriptionId(Tag id);
00913
00918 void addAssocConfigDescriptionId(const vector<Tag> & id);
00919
00920
00926 const Tag getAssocConfigDescriptionId(int i);
00927
00935 ConfigDescriptionRow* getConfigDescription(int i);
00936
00941 vector<ConfigDescriptionRow *> getConfigDescriptions();
00942
00943
00944
00945
00946
00947
00948
00953 bool compareNoAutoInc(vector<Tag> antennaId, vector<Tag> dataDescriptionId, vector<int> feedId, Tag processorId, vector<Tag> switchCycleId, int numAntenna, int numFeed, vector<int > numSubBand, CorrelationMode correlationMode, AtmPhaseCorrection atmPhaseCorrection);
00954
00955
00956
00957
00958 bool compareRequiredValue(vector<Tag> antennaId, vector<Tag> dataDescriptionId, vector<int> feedId, Tag processorId, vector<Tag> switchCycleId, int numAntenna, int numFeed, vector<int > numSubBand, CorrelationMode correlationMode, AtmPhaseCorrection atmPhaseCorrection);
00959
00960
00969 bool equalByRequiredValue(ConfigDescriptionRow* x) ;
00970
00971 private:
00975 ConfigDescriptionTable &table;
00979 bool hasBeenAdded;
00980
00981
00982 void isAdded();
00983
00984
00993 ConfigDescriptionRow (ConfigDescriptionTable &table);
00994
01012 ConfigDescriptionRow (ConfigDescriptionTable &table, ConfigDescriptionRow &row);
01013
01015
01017
01018
01019
01020
01021
01022
01023 int numAntenna;
01024
01025
01026
01027
01028
01029
01030
01031
01032
01033
01034 int numFeed;
01035
01036
01037
01038
01039
01040
01041
01042
01043
01044
01045 vector<int > numSubBand;
01046
01047
01048
01049
01050
01051
01052
01053
01054
01055 bool phasedArrayListExists;
01056
01057
01058 vector<int > phasedArrayList;
01059
01060
01061
01062
01063
01064
01065
01066
01067
01068
01069 CorrelationMode correlationMode;
01070
01071
01072
01073
01074
01075
01076
01077
01078
01079 bool flagAntExists;
01080
01081
01082 vector<bool > flagAnt;
01083
01084
01085
01086
01087
01088
01089
01090
01091
01092
01093 Tag configDescriptionId;
01094
01095
01096
01097
01104 void setConfigDescriptionId (Tag configDescriptionId) throw(IllegalAccessException);
01105
01106
01107
01108
01109
01110
01111
01112
01113 AtmPhaseCorrection atmPhaseCorrection;
01114
01115
01116
01117
01118
01119
01120
01121
01122
01123 bool assocNatureExists;
01124
01125
01126 vector<SpectralResolutionType > assocNature;
01127
01128
01129
01130
01131
01133
01135
01136
01137
01138
01139
01140
01141 vector<Tag> antennaId;
01142
01143
01144
01145
01146
01147
01148
01149
01150
01151 bool assocConfigDescriptionIdExists;
01152
01153
01154 vector<Tag> assocConfigDescriptionId;
01155
01156
01157
01158
01159
01160
01161
01162
01163
01164
01165 vector<Tag> dataDescriptionId;
01166
01167
01168
01169
01170
01171
01172
01173
01174
01175
01176 vector<int> feedId;
01177
01178
01179
01180
01181
01182
01183
01184
01185
01186
01187 Tag processorId;
01188
01189
01190
01191
01192
01193
01194
01195
01196
01197
01198 vector<Tag> switchCycleId;
01199
01200
01201
01202
01203
01205
01207
01208
01209
01210
01211
01212
01213
01214
01215
01216
01217
01218
01219
01220
01221
01222
01223
01224
01225
01226
01227
01228
01229
01230
01231
01232
01233
01234
01235
01236
01237
01238
01239
01240
01241
01242
01243
01244
01245
01246 };
01247
01248 }
01249
01250 #endif