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 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
00050
00051
00052
00053
00054 #include <Tag.h>
00055 using asdm::Tag;
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067 #include "CCorrelationMode.h"
00068 using namespace CorrelationModeMod;
00069
00070
00071
00072
00073
00074
00075
00076 #include "CAtmPhaseCorrection.h"
00077 using namespace AtmPhaseCorrectionMod;
00078
00079
00080
00081 #include "CProcessorType.h"
00082 using namespace ProcessorTypeMod;
00083
00084
00085
00086
00087
00088 #include "CSpectralResolutionType.h"
00089 using namespace SpectralResolutionTypeMod;
00090
00091
00092
00093
00094
00095 #include "CSpectralResolutionType.h"
00096 using namespace SpectralResolutionTypeMod;
00097
00098
00099
00100
00101 #include <ConversionException.h>
00102 #include <NoSuchRow.h>
00103 #include <IllegalAccessException.h>
00104
00105
00106
00107
00108
00109
00110 namespace asdm {
00111
00112
00113
00114
00115
00116 class ConfigDescriptionRow;
00117
00118
00119 class AntennaRow;
00120
00121
00122 class FeedRow;
00123
00124
00125 class SwitchCycleRow;
00126
00127
00128 class DataDescriptionRow;
00129
00130
00131 class ProcessorRow;
00132
00133
00134 class ConfigDescriptionRow;
00135 typedef void (ConfigDescriptionRow::*ConfigDescriptionAttributeFromBin) (EndianISStream& eiss);
00136
00143 class ConfigDescriptionRow {
00144 friend class asdm::ConfigDescriptionTable;
00145
00146 public:
00147
00148 virtual ~ConfigDescriptionRow();
00149
00153 ConfigDescriptionTable &getTable() const;
00154
00159 bool isAdded() const;
00160
00162
00164
00165
00166
00167
00168
00169
00170
00171
00176 int getNumAntenna() const;
00177
00178
00179
00180
00188 void setNumAntenna (int numAntenna);
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201
00206 int getNumDataDescription() const;
00207
00208
00209
00210
00218 void setNumDataDescription (int numDataDescription);
00219
00220
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00236 int getNumFeed() const;
00237
00238
00239
00240
00248 void setNumFeed (int numFeed);
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261
00266 CorrelationModeMod::CorrelationMode getCorrelationMode() const;
00267
00268
00269
00270
00278 void setCorrelationMode (CorrelationModeMod::CorrelationMode correlationMode);
00279
00280
00281
00282
00283
00284
00285
00286
00287
00288
00289
00290
00291
00296 Tag getConfigDescriptionId() const;
00297
00298
00299
00300
00301
00302
00303
00304
00305
00306
00307
00308
00309
00310
00311
00316 int getNumAtmPhaseCorrection() const;
00317
00318
00319
00320
00328 void setNumAtmPhaseCorrection (int numAtmPhaseCorrection);
00329
00330
00331
00332
00333
00334
00335
00336
00337
00338
00339
00340
00341
00346 vector<AtmPhaseCorrectionMod::AtmPhaseCorrection > getAtmPhaseCorrection() const;
00347
00348
00349
00350
00358 void setAtmPhaseCorrection (vector<AtmPhaseCorrectionMod::AtmPhaseCorrection > atmPhaseCorrection);
00359
00360
00361
00362
00363
00364
00365
00366
00367
00368
00369
00370
00371
00376 ProcessorTypeMod::ProcessorType getProcessorType() const;
00377
00378
00379
00380
00388 void setProcessorType (ProcessorTypeMod::ProcessorType processorType);
00389
00390
00391
00392
00393
00394
00395
00396
00397
00398
00399
00404 bool isPhasedArrayListExists() const;
00405
00406
00407
00413 vector<int > getPhasedArrayList() const;
00414
00415
00416
00417
00424 void setPhasedArrayList (vector<int > phasedArrayList);
00425
00426
00427
00428
00432 void clearPhasedArrayList ();
00433
00434
00435
00436
00437
00438
00439
00440
00441
00442
00447 SpectralResolutionTypeMod::SpectralResolutionType getSpectralType() const;
00448
00449
00450
00451
00459 void setSpectralType (SpectralResolutionTypeMod::SpectralResolutionType spectralType);
00460
00461
00462
00463
00464
00465
00466
00467
00468
00469
00470
00475 bool isNumAssocValuesExists() const;
00476
00477
00478
00484 int getNumAssocValues() const;
00485
00486
00487
00488
00495 void setNumAssocValues (int numAssocValues);
00496
00497
00498
00499
00503 void clearNumAssocValues ();
00504
00505
00506
00507
00508
00509
00510
00511
00516 bool isAssocNatureExists() const;
00517
00518
00519
00525 vector<SpectralResolutionTypeMod::SpectralResolutionType > getAssocNature() const;
00526
00527
00528
00529
00536 void setAssocNature (vector<SpectralResolutionTypeMod::SpectralResolutionType > assocNature);
00537
00538
00539
00540
00544 void clearAssocNature ();
00545
00546
00547
00549
00551
00552
00553
00554
00555
00556
00557
00558
00563 vector<Tag> getAntennaId() const;
00564
00565
00566
00567
00575 void setAntennaId (vector<Tag> antennaId);
00576
00577
00578
00579
00580
00581
00582
00583
00584
00585
00586
00591 bool isAssocConfigDescriptionIdExists() const;
00592
00593
00594
00600 vector<Tag> getAssocConfigDescriptionId() const;
00601
00602
00603
00604
00611 void setAssocConfigDescriptionId (vector<Tag> assocConfigDescriptionId);
00612
00613
00614
00615
00619 void clearAssocConfigDescriptionId ();
00620
00621
00622
00623
00624
00625
00626
00627
00628
00629
00634 vector<Tag> getDataDescriptionId() const;
00635
00636
00637
00638
00646 void setDataDescriptionId (vector<Tag> dataDescriptionId);
00647
00648
00649
00650
00651
00652
00653
00654
00655
00656
00657
00658
00659
00664 vector<int> getFeedId() const;
00665
00666
00667
00668
00676 void setFeedId (vector<int> feedId);
00677
00678
00679
00680
00681
00682
00683
00684
00685
00686
00687
00688
00689
00694 Tag getProcessorId() const;
00695
00696
00697
00698
00706 void setProcessorId (Tag processorId);
00707
00708
00709
00710
00711
00712
00713
00714
00715
00716
00717
00718
00719
00724 vector<Tag> getSwitchCycleId() const;
00725
00726
00727
00728
00736 void setSwitchCycleId (vector<Tag> switchCycleId);
00737
00738
00739
00740
00741
00742
00744
00746
00747
00748
00755 void setAssocConfigDescriptionId (int i, Tag assocConfigDescriptionId) ;
00756
00757
00758
00759
00760
00765 void addAssocConfigDescriptionId(Tag id);
00766
00771 void addAssocConfigDescriptionId(const vector<Tag> & id);
00772
00773
00779 const Tag getAssocConfigDescriptionId(int i);
00780
00788 ConfigDescriptionRow* getConfigDescriptionUsingAssocConfigDescriptionId(int i);
00789
00794 vector<ConfigDescriptionRow *> getConfigDescriptionsUsingAssocConfigDescriptionId();
00795
00796
00797
00798
00799
00800
00808 void setAntennaId (int i, Tag antennaId);
00809
00810
00811
00812
00813
00818 void addAntennaId(Tag id);
00819
00824 void addAntennaId(const vector<Tag> & id);
00825
00826
00832 const Tag getAntennaId(int i);
00833
00841 AntennaRow* getAntennaUsingAntennaId(int i);
00842
00847 vector<AntennaRow *> getAntennasUsingAntennaId();
00848
00849
00850
00851
00852
00853
00861 void setFeedId (int i, int feedId);
00862
00863
00864
00865
00866
00867
00868
00869
00874 void addFeedId(int id);
00875
00880 void addFeedId(vector<int> id);
00881
00882
00887 const vector <FeedRow *> getFeeds(int i);
00888
00889
00895 const vector <FeedRow *> getFeeds();
00896
00897
00898
00899
00900
00901
00902
00910 void setSwitchCycleId (int i, Tag switchCycleId);
00911
00912
00913
00914
00915
00920 void addSwitchCycleId(Tag id);
00921
00926 void addSwitchCycleId(const vector<Tag> & id);
00927
00928
00934 const Tag getSwitchCycleId(int i);
00935
00943 SwitchCycleRow* getSwitchCycleUsingSwitchCycleId(int i);
00944
00949 vector<SwitchCycleRow *> getSwitchCyclesUsingSwitchCycleId();
00950
00951
00952
00953
00954
00955
00963 void setDataDescriptionId (int i, Tag dataDescriptionId);
00964
00965
00966
00967
00968
00973 void addDataDescriptionId(Tag id);
00974
00979 void addDataDescriptionId(const vector<Tag> & id);
00980
00981
00987 const Tag getDataDescriptionId(int i);
00988
00996 DataDescriptionRow* getDataDescriptionUsingDataDescriptionId(int i);
00997
01002 vector<DataDescriptionRow *> getDataDescriptionsUsingDataDescriptionId();
01003
01004
01005
01006
01007
01008
01009
01010
01017 ProcessorRow* getProcessorUsingProcessorId();
01018
01019
01020
01021
01022
01023
01024
01056 bool compareNoAutoInc(int numAntenna, int numDataDescription, int numFeed, CorrelationModeMod::CorrelationMode correlationMode, int numAtmPhaseCorrection, vector<AtmPhaseCorrectionMod::AtmPhaseCorrection > atmPhaseCorrection, ProcessorTypeMod::ProcessorType processorType, SpectralResolutionTypeMod::SpectralResolutionType spectralType, vector<Tag> antennaId, vector<int> feedId, vector<Tag> switchCycleId, vector<Tag> dataDescriptionId, Tag processorId);
01057
01058
01059
01060
01092 bool compareRequiredValue(int numAntenna, int numDataDescription, int numFeed, CorrelationModeMod::CorrelationMode correlationMode, int numAtmPhaseCorrection, vector<AtmPhaseCorrectionMod::AtmPhaseCorrection > atmPhaseCorrection, ProcessorTypeMod::ProcessorType processorType, SpectralResolutionTypeMod::SpectralResolutionType spectralType, vector<Tag> antennaId, vector<int> feedId, vector<Tag> switchCycleId, vector<Tag> dataDescriptionId, Tag processorId);
01093
01094
01103 bool equalByRequiredValue(ConfigDescriptionRow* x) ;
01104
01105 #ifndef WITHOUT_ACS
01106
01110 ConfigDescriptionRowIDL *toIDL() const;
01111 #endif
01112
01113 #ifndef WITHOUT_ACS
01114
01119 void setFromIDL (ConfigDescriptionRowIDL x) ;
01120 #endif
01121
01126 string toXML() const;
01127
01134 void setFromXML (string rowDoc) ;
01135
01136 private:
01140 ConfigDescriptionTable &table;
01144 bool hasBeenAdded;
01145
01146
01147 void isAdded(bool added);
01148
01149
01158 ConfigDescriptionRow (ConfigDescriptionTable &table);
01159
01177 ConfigDescriptionRow (ConfigDescriptionTable &table, ConfigDescriptionRow &row);
01178
01180
01182
01183
01184
01185
01186
01187
01188 int numAntenna;
01189
01190
01191
01192
01193
01194
01195
01196
01197
01198
01199 int numDataDescription;
01200
01201
01202
01203
01204
01205
01206
01207
01208
01209
01210 int numFeed;
01211
01212
01213
01214
01215
01216
01217
01218
01219
01220
01221 CorrelationModeMod::CorrelationMode correlationMode;
01222
01223
01224
01225
01226
01227
01228
01229
01230
01231
01232 Tag configDescriptionId;
01233
01234
01235
01236
01246 void setConfigDescriptionId (Tag configDescriptionId);
01247
01248
01249
01250
01251
01252
01253
01254
01255 int numAtmPhaseCorrection;
01256
01257
01258
01259
01260
01261
01262
01263
01264
01265
01266 vector<AtmPhaseCorrectionMod::AtmPhaseCorrection > atmPhaseCorrection;
01267
01268
01269
01270
01271
01272
01273
01274
01275
01276
01277 ProcessorTypeMod::ProcessorType processorType;
01278
01279
01280
01281
01282
01283
01284
01285
01286
01287 bool phasedArrayListExists;
01288
01289
01290 vector<int > phasedArrayList;
01291
01292
01293
01294
01295
01296
01297
01298
01299
01300
01301 SpectralResolutionTypeMod::SpectralResolutionType spectralType;
01302
01303
01304
01305
01306
01307
01308
01309
01310
01311 bool numAssocValuesExists;
01312
01313
01314 int numAssocValues;
01315
01316
01317
01318
01319
01320
01321
01322
01323
01324 bool assocNatureExists;
01325
01326
01327 vector<SpectralResolutionTypeMod::SpectralResolutionType > assocNature;
01328
01329
01330
01331
01332
01334
01336
01337
01338
01339
01340
01341
01342 vector<Tag> antennaId;
01343
01344
01345
01346
01347
01348
01349
01350
01351
01352 bool assocConfigDescriptionIdExists;
01353
01354
01355 vector<Tag> assocConfigDescriptionId;
01356
01357
01358
01359
01360
01361
01362
01363
01364
01365
01366 vector<Tag> dataDescriptionId;
01367
01368
01369
01370
01371
01372
01373
01374
01375
01376
01377 vector<int> feedId;
01378
01379
01380
01381
01382
01383
01384
01385
01386
01387
01388 Tag processorId;
01389
01390
01391
01392
01393
01394
01395
01396
01397
01398
01399 vector<Tag> switchCycleId;
01400
01401
01402
01403
01404
01406
01408
01409
01410
01411
01412
01413
01414
01415
01416
01417
01418
01419
01420
01421
01422
01423
01424
01425
01426
01427
01428
01429
01430
01431
01432
01433
01434
01435
01436
01437
01438
01439
01440
01441
01442
01443
01444
01445
01446
01448
01450 map<string, ConfigDescriptionAttributeFromBin> fromBinMethods;
01451 void configDescriptionIdFromBin( EndianISStream& eiss);
01452 void numAntennaFromBin( EndianISStream& eiss);
01453 void numDataDescriptionFromBin( EndianISStream& eiss);
01454 void numFeedFromBin( EndianISStream& eiss);
01455 void correlationModeFromBin( EndianISStream& eiss);
01456 void numAtmPhaseCorrectionFromBin( EndianISStream& eiss);
01457 void atmPhaseCorrectionFromBin( EndianISStream& eiss);
01458 void processorTypeFromBin( EndianISStream& eiss);
01459 void spectralTypeFromBin( EndianISStream& eiss);
01460 void antennaIdFromBin( EndianISStream& eiss);
01461 void feedIdFromBin( EndianISStream& eiss);
01462 void switchCycleIdFromBin( EndianISStream& eiss);
01463 void dataDescriptionIdFromBin( EndianISStream& eiss);
01464 void processorIdFromBin( EndianISStream& eiss);
01465
01466 void phasedArrayListFromBin( EndianISStream& eiss);
01467 void numAssocValuesFromBin( EndianISStream& eiss);
01468 void assocNatureFromBin( EndianISStream& eiss);
01469 void assocConfigDescriptionIdFromBin( EndianISStream& eiss);
01470
01471
01476 void toBin(EndianOSStream& eoss);
01477
01485 static ConfigDescriptionRow* fromBin(EndianISStream& eiss, ConfigDescriptionTable& table, const vector<string>& attributesSeq);
01486
01487 };
01488
01489 }
01490
01491 #endif