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 ScanRow_CLASS
00035
#define ScanRow_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::ScanRowIDL;
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
00088
00089
00090
00091
#include "CScanIntent.h"
00092
using namespace ScanIntentMod;
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
using asdm::Angle;
00104
using asdm::AngularRate;
00105
using asdm::ArrayTime;
00106
using asdm::Complex;
00107
using asdm::Entity;
00108
using asdm::EntityId;
00109
using asdm::EntityRef;
00110
using asdm::Flux;
00111
using asdm::Frequency;
00112
using asdm::Humidity;
00113
using asdm::Interval;
00114
using asdm::Length;
00115
using asdm::Pressure;
00116
using asdm::Speed;
00117
using asdm::Tag;
00118
using asdm::Temperature;
00119
using asdm::ConversionException;
00120
using asdm::NoSuchRow;
00121
using asdm::IllegalAccessException;
00122
00123
00124
00125
00126
00127
namespace asdm {
00128
00129
00130
00131
00132
00133
class ExecBlockRow;
00134
00135
00142 class ScanRow {
00143
friend class asdm::ScanTable;
00144
00145
public:
00146
00147
virtual ~
ScanRow();
00148
00152
ScanTable &
getTable()
const;
00153
00154
#ifndef WITHOUT_ACS
00155
00159 ScanRowIDL *
toIDL()
const;
00160
#endif
00161
00162
#ifndef WITHOUT_ACS
00163
00167
void setFromIDL (ScanRowIDL x)
throw(
ConversionException);
00168
#endif
00169
00174 string
toXML()
const;
00175
00181
void setFromXML (string rowDoc)
throw(
ConversionException);
00182
00184
00186
00187
00188
00189
00190
00191
00192
00193
00198
int getScanNumber()
const;
00199
00200
00201
00202
00212
void setScanNumber (
int scanNumber);
00213
00214
00215
00216
00217
00218
00219
00220
00221
00222
00223
00224
00225
00230
ArrayTime getStartTime()
const;
00231
00232
00233
00234
00242
void setStartTime (
ArrayTime startTime);
00243
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00260
ArrayTime getEndTime()
const;
00261
00262
00263
00264
00272
void setEndTime (
ArrayTime endTime);
00273
00274
00275
00276
00277
00278
00279
00280
00281
00282
00283
00284
00285
00290
int getNumSubScan()
const;
00291
00292
00293
00294
00302
void setNumSubScan (
int numSubScan);
00303
00304
00305
00306
00307
00308
00309
00310
00311
00312
00313
00314
00315
00320
int getNumIntent()
const;
00321
00322
00323
00324
00332
void setNumIntent (
int numIntent);
00333
00334
00335
00336
00337
00338
00339
00340
00341
00342
00343
00348
bool isNumFieldExists()
const;
00349
00350
00351
00357
int getNumField()
const throw(
IllegalAccessException);
00358
00359
00360
00361
00368
void setNumField (
int numField);
00369
00370
00371
00372
00376
void clearNumField ();
00377
00378
00379
00380
00381
00382
00383
00384
00385
00386
00391 vector<ScanIntentMod::ScanIntent >
getScanIntent()
const;
00392
00393
00394
00395
00403
void setScanIntent (vector<ScanIntentMod::ScanIntent > scanIntent);
00404
00405
00406
00407
00408
00409
00410
00411
00412
00413
00414
00419
bool isSourceNameExists()
const;
00420
00421
00422
00428 string
getSourceName()
const throw(
IllegalAccessException);
00429
00430
00431
00432
00439
void setSourceName (string sourceName);
00440
00441
00442
00443
00447
void clearSourceName ();
00448
00449
00450
00451
00452
00453
00454
00455
00460
bool isFieldNameExists()
const;
00461
00462
00463
00469 vector<string >
getFieldName()
const throw(
IllegalAccessException);
00470
00471
00472
00473
00480
void setFieldName (vector<string > fieldName);
00481
00482
00483
00484
00488
void clearFieldName ();
00489
00490
00491
00492
00493
00494
00495
00496
00497
00498
00503
bool getFlagRow()
const;
00504
00505
00506
00507
00515
void setFlagRow (
bool flagRow);
00516
00517
00518
00519
00520
00521
00523
00525
00526
00527
00528
00529
00530
00531
00532
00537
Tag getExecBlockId()
const;
00538
00539
00540
00541
00551
void setExecBlockId (
Tag execBlockId);
00552
00553
00554
00555
00556
00557
00559
00561
00562
00563
00564
00565
00572
ExecBlockRow*
getExecBlockUsingExecBlockId();
00573
00574
00575
00576
00577
00578
00579
00584
bool compareNoAutoInc(
Tag execBlockId,
int scanNumber,
ArrayTime startTime,
ArrayTime endTime,
int numSubScan,
int numIntent, vector<ScanIntentMod::ScanIntent > scanIntent,
bool flagRow);
00585
00586
00587
00588
00589
bool compareRequiredValue(
ArrayTime startTime,
ArrayTime endTime,
int numSubScan,
int numIntent, vector<ScanIntentMod::ScanIntent > scanIntent,
bool flagRow);
00590
00591
00600
bool equalByRequiredValue(
ScanRow* x) ;
00601
00602
private:
00606
ScanTable &table;
00610
bool hasBeenAdded;
00611
00612
00613
void isAdded();
00614
00615
00624
ScanRow (
ScanTable &table);
00625
00643
ScanRow (
ScanTable &table,
ScanRow &row);
00644
00646
00648
00649
00650
00651
00652
00653
00654
int scanNumber;
00655
00656
00657
00658
00659
00660
00661
00662
00663
00664
00665
ArrayTime startTime;
00666
00667
00668
00669
00670
00671
00672
00673
00674
00675
00676
ArrayTime endTime;
00677
00678
00679
00680
00681
00682
00683
00684
00685
00686
00687
int numSubScan;
00688
00689
00690
00691
00692
00693
00694
00695
00696
00697
00698
int numIntent;
00699
00700
00701
00702
00703
00704
00705
00706
00707
00708
bool numFieldExists;
00709
00710
00711
int numField;
00712
00713
00714
00715
00716
00717
00718
00719
00720
00721
00722 vector<ScanIntentMod::ScanIntent > scanIntent;
00723
00724
00725
00726
00727
00728
00729
00730
00731
00732
bool sourceNameExists;
00733
00734
00735 string sourceName;
00736
00737
00738
00739
00740
00741
00742
00743
00744
00745
bool fieldNameExists;
00746
00747
00748 vector<string > fieldName;
00749
00750
00751
00752
00753
00754
00755
00756
00757
00758
00759
bool flagRow;
00760
00761
00762
00763
00764
00766
00768
00769
00770
00771
00772
00773
00774
Tag execBlockId;
00775
00776
00777
00778
00779
00781
00783
00784
00785
00786
00787
00788
00789
00790
00791
00792 };
00793
00794 }
00795
00796
#endif