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 MainRow_CLASS
00035 #define MainRow_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::MainRowIDL;
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 #include "CTimeSampling.h"
00086 using namespace TimeSamplingMod;
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099 using asdm::Angle;
00100 using asdm::AngularRate;
00101 using asdm::ArrayTime;
00102 using asdm::Complex;
00103 using asdm::Entity;
00104 using asdm::EntityId;
00105 using asdm::EntityRef;
00106 using asdm::Flux;
00107 using asdm::Frequency;
00108 using asdm::Humidity;
00109 using asdm::Interval;
00110 using asdm::Length;
00111 using asdm::Pressure;
00112 using asdm::Speed;
00113 using asdm::Tag;
00114 using asdm::Temperature;
00115 using asdm::ConversionException;
00116 using asdm::NoSuchRow;
00117 using asdm::IllegalAccessException;
00118
00119
00120
00121
00122
00123 namespace asdm {
00124
00125
00126
00127
00128
00129 class ConfigDescriptionRow;
00130
00131
00132 class FieldRow;
00133
00134
00135 class StateRow;
00136
00137
00138 class ExecBlockRow;
00139
00140
00147 class MainRow {
00148 friend class asdm::MainTable;
00149
00150 public:
00151
00152 virtual ~MainRow();
00153
00157 MainTable &getTable() const;
00158
00159 #ifndef WITHOUT_ACS
00160
00164 MainRowIDL *toIDL() const;
00165 #endif
00166
00167 #ifndef WITHOUT_ACS
00168
00172 void setFromIDL (MainRowIDL x) throw(ConversionException);
00173 #endif
00174
00179 string toXML() const;
00180
00186 void setFromXML (string rowDoc) throw(ConversionException);
00187
00189
00191
00192
00193
00194
00195
00196
00197
00198
00203 ArrayTime getTime() const;
00204
00205
00206
00207
00214 void setTime (ArrayTime time) throw(IllegalAccessException);
00215
00216
00217
00218
00219
00220
00221
00222
00223
00224
00225
00226
00227
00232 int getScanNumber() const;
00233
00234
00235
00236
00242 void setScanNumber (int scanNumber);
00243
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00260 int getSubscanNumber() const;
00261
00262
00263
00264
00270 void setSubscanNumber (int subscanNumber);
00271
00272
00273
00274
00275
00276
00277
00278
00279
00280
00281
00282
00283
00288 TimeSampling getTimeSampling() const;
00289
00290
00291
00292
00298 void setTimeSampling (TimeSampling timeSampling);
00299
00300
00301
00302
00303
00304
00305
00306
00307
00308
00309
00310
00311
00316 int getNumIntegration() const;
00317
00318
00319
00320
00326 void setNumIntegration (int numIntegration);
00327
00328
00329
00330
00331
00332
00333
00334
00335
00336
00337
00338
00339
00344 EntityRef getDataOid() const;
00345
00346
00347
00348
00354 void setDataOid (EntityRef dataOid);
00355
00356
00357
00358
00359
00360
00361
00362
00363
00364
00365
00366
00367
00372 bool getFlagRow() const;
00373
00374
00375
00376
00382 void setFlagRow (bool flagRow);
00383
00384
00385
00386
00387
00388
00389
00390
00391
00392
00393
00394
00395
00400 Interval getInterval() const;
00401
00402
00403
00404
00410 void setInterval (Interval interval);
00411
00412
00413
00414
00415
00416
00418
00420
00421
00422
00423
00424
00425
00426
00427
00432 Tag getConfigDescriptionId() const;
00433
00434
00435
00436
00443 void setConfigDescriptionId (Tag configDescriptionId) throw(IllegalAccessException);
00444
00445
00446
00447
00448
00449
00450
00451
00452
00453
00454
00455
00456
00461 Tag getExecBlockId() const;
00462
00463
00464
00465
00471 void setExecBlockId (Tag execBlockId);
00472
00473
00474
00475
00476
00477
00478
00479
00480
00481
00482
00483
00484
00489 Tag getFieldId() const;
00490
00491
00492
00493
00500 void setFieldId (Tag fieldId) throw(IllegalAccessException);
00501
00502
00503
00504
00505
00506
00507
00508
00509
00510
00511
00512
00513
00518 vector<Tag> getStateId() const;
00519
00520
00521
00522
00528 void setStateId (vector<Tag> stateId);
00529
00530
00531
00532
00533
00534
00536
00538
00539
00540
00541
00542
00549 ConfigDescriptionRow* getConfigDescriptionUsingConfigDescriptionId();
00550
00551
00552
00553
00554
00555
00556
00557
00564 FieldRow* getFieldUsingFieldId();
00565
00566
00567
00568
00569
00570
00577 void setStateId (int i, Tag stateId) throw(OutOfBoundsException) ;
00578
00579
00580
00581
00582
00587 void addStateId(Tag id);
00588
00593 void addStateId(const vector<Tag> & id);
00594
00595
00601 const Tag getStateId(int i);
00602
00610 StateRow* getState(int i);
00611
00616 vector<StateRow *> getStates();
00617
00618
00619
00620
00621
00622
00623
00624
00631 ExecBlockRow* getExecBlockUsingExecBlockId();
00632
00633
00634
00635
00636
00637
00638
00643 bool compareNoAutoInc(Tag configDescriptionId, Tag fieldId, ArrayTime time, Tag execBlockId, vector<Tag> stateId, int scanNumber, int subscanNumber, TimeSampling timeSampling, int numIntegration, EntityRef dataOid, bool flagRow, Interval interval);
00644
00645
00646
00647
00648 bool compareRequiredValue(Tag execBlockId, vector<Tag> stateId, int scanNumber, int subscanNumber, TimeSampling timeSampling, int numIntegration, EntityRef dataOid, bool flagRow, Interval interval);
00649
00650
00659 bool equalByRequiredValue(MainRow* x) ;
00660
00661 private:
00665 MainTable &table;
00669 bool hasBeenAdded;
00670
00671
00672 void isAdded();
00673
00674
00683 MainRow (MainTable &table);
00684
00702 MainRow (MainTable &table, MainRow &row);
00703
00705
00707
00708
00709
00710
00711
00712
00713 ArrayTime time;
00714
00715
00716
00717
00718
00719
00720
00721
00722
00723
00724 int scanNumber;
00725
00726
00727
00728
00729
00730
00731
00732
00733
00734
00735 int subscanNumber;
00736
00737
00738
00739
00740
00741
00742
00743
00744
00745
00746 TimeSampling timeSampling;
00747
00748
00749
00750
00751
00752
00753
00754
00755
00756
00757 int numIntegration;
00758
00759
00760
00761
00762
00763
00764
00765
00766
00767
00768 EntityRef dataOid;
00769
00770
00771
00772
00773
00774
00775
00776
00777
00778
00779 bool flagRow;
00780
00781
00782
00783
00784
00785
00786
00787
00788
00789
00790 Interval interval;
00791
00792
00793
00794
00795
00797
00799
00800
00801
00802
00803
00804
00805 Tag configDescriptionId;
00806
00807
00808
00809
00810
00811
00812
00813
00814
00815
00816 Tag execBlockId;
00817
00818
00819
00820
00821
00822
00823
00824
00825
00826
00827 Tag fieldId;
00828
00829
00830
00831
00832
00833
00834
00835
00836
00837
00838 vector<Tag> stateId;
00839
00840
00841
00842
00843
00845
00847
00848
00849
00850
00851
00852
00853
00854
00855
00856
00857
00858
00859
00860
00861
00862
00863
00864
00865
00866
00867
00868
00869
00870
00871
00872
00873
00874
00875
00876 };
00877
00878 }
00879
00880 #endif