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 ExecBlockTable_CLASS
00035
#define ExecBlockTable_CLASS
00036
00037
#include <string>
00038
#include <vector>
00039
#include <map>
00040
#include <set>
00041
using std::string;
00042
using std::vector;
00043
using std::map;
00044
00045
#include <Angle.h>
00046
#include <AngularRate.h>
00047
#include <ArrayTime.h>
00048
#include <ArrayTimeInterval.h>
00049
#include <Complex.h>
00050
#include <Entity.h>
00051
#include <EntityId.h>
00052
#include <EntityRef.h>
00053
#include <Flux.h>
00054
#include <Frequency.h>
00055
#include <Humidity.h>
00056
#include <Interval.h>
00057
#include <Length.h>
00058
#include <PartId.h>
00059
#include <Pressure.h>
00060
#include <Speed.h>
00061
#include <Tag.h>
00062
#include <Temperature.h>
00063
#include <ConversionException.h>
00064
#include <DuplicateKey.h>
00065
#include <UniquenessViolationException.h>
00066
#include <NoSuchRow.h>
00067
#include <DuplicateKey.h>
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
#ifndef WITHOUT_ACS
00123
#include <asdmIDLC.h>
00124
using asdmIDL::ExecBlockTableIDL;
00125
#endif
00126
00127
using asdm::Angle;
00128
using asdm::AngularRate;
00129
using asdm::ArrayTime;
00130
using asdm::Complex;
00131
using asdm::Entity;
00132
using asdm::EntityId;
00133
using asdm::EntityRef;
00134
using asdm::Flux;
00135
using asdm::Frequency;
00136
using asdm::Humidity;
00137
using asdm::Interval;
00138
using asdm::Length;
00139
using asdm::PartId;
00140
using asdm::Pressure;
00141
using asdm::Speed;
00142
using asdm::Tag;
00143
using asdm::Temperature;
00144
00145
using asdm::DuplicateKey;
00146
using asdm::ConversionException;
00147
using asdm::NoSuchRow;
00148
using asdm::DuplicateKey;
00149
00150
#include <Representable.h>
00151
00152
namespace asdm {
00153
00154
00155
00156
00157
class ASDM;
00158
class ExecBlockRow;
00321 class ExecBlockTable :
public Representable {
00322
friend class asdm::ASDM;
00323
00324
public:
00325
00326
00332
static vector<string>
getKeyName();
00333
00334
00335
virtual ~
ExecBlockTable();
00336
00342
ASDM &
getContainer()
const;
00343
00349
unsigned int size() ;
00350
00356 string
getName()
const;
00357
00361
Entity getEntity()
const;
00362
00367
void setEntity(
Entity e);
00368
00369
00370
00371
00372
00377
ExecBlockRow *
newRow();
00378
00383
ExecBlockRow*
newRowEmpty();
00384
00385
00433
ExecBlockRow *
newRow(vector<Tag> antennaId,
int execBlockNum, string telescopeName, string configName,
int numAntenna,
Length baseRangeMin,
Length baseRangeMax,
Length baseRmsMinor,
Length baseRmsMajor,
Angle basePa,
ArrayTimeInterval timeInterval, string observerName, vector<string > observingLog, vector<string > schedulerMode,
EntityRef projectId,
Angle siteLongitude,
Angle siteLatitude,
Length siteAltitude,
bool flagRow,
EntityRef execBlockUID,
bool aborted);
00434
00439
ExecBlockRow *
newRowFull(vector<Tag> antennaId,
int execBlockNum, string telescopeName, string configName,
int numAntenna,
Length baseRangeMin,
Length baseRangeMax,
Length baseRmsMinor,
Length baseRmsMajor,
Angle basePa,
ArrayTimeInterval timeInterval, string observerName, vector<string > observingLog, vector<string > schedulerMode,
EntityRef projectId,
Angle siteLongitude,
Angle siteLatitude,
Length siteAltitude,
bool flagRow,
EntityRef execBlockUID,
bool aborted);
00440
00441
00454
ExecBlockRow *
newRow(
ExecBlockRow *row);
00455
00460
ExecBlockRow *
newRowCopy(
ExecBlockRow *row);
00461
00462
00463
00464
00465
00466
00467
00468
00478
ExecBlockRow*
add(
ExecBlockRow* x) ;
00479
00480
00481
00482
00483
00484
00485
00491 vector<ExecBlockRow *>
get() ;
00492
00493
00494
00495
00496
00506
ExecBlockRow*
getRowByKey(
Tag execBlockId);
00507
00508
00509
00510
00511
00561
ExecBlockRow*
lookup(vector<Tag> antennaId,
int execBlockNum, string telescopeName, string configName,
int numAntenna,
Length baseRangeMin,
Length baseRangeMax,
Length baseRmsMinor,
Length baseRmsMajor,
Angle basePa,
ArrayTimeInterval timeInterval, string observerName, vector<string > observingLog, vector<string > schedulerMode,
EntityRef projectId,
Angle siteLongitude,
Angle siteLatitude,
Length siteAltitude,
bool flagRow,
EntityRef execBlockUID,
bool aborted);
00562
00563
00564
#ifndef WITHOUT_ACS
00565
00571 ExecBlockTableIDL *
toIDL() ;
00572
#endif
00573
00574
#ifndef WITHOUT_ACS
00575
00581
void fromIDL(ExecBlockTableIDL x)
throw(
DuplicateKey,
ConversionException);
00582
#endif
00583
00587
char *
toFITS()
const throw(
ConversionException);
00588
00592
void fromFITS(
char *fits)
throw(
ConversionException);
00593
00597 string
toVOTable()
const throw(
ConversionException);
00598
00602
void fromVOTable(string vo)
throw(
ConversionException);
00603
00610 string
toXML()
throw(
ConversionException);
00611
00617
void fromXML(string xmlDoc)
throw(
ConversionException);
00618
00624 string
toMIME();
00625
00632
void setFromMIME(
const string & mimeMsg);
00633
00643
void toFile(string directory);
00644
00653
void setFromFile(
const string& directory);
00654
00655
private:
00656
00665
ExecBlockTable (
ASDM & container);
00666
00667
ASDM & container;
00668
00669
bool archiveAsBin;
00670
bool fileAsBin ;
00671
00672
Entity entity;
00673
00674
00675
00676 map<string,int> noAutoIncIds;
00677
void autoIncrement(string key,
ExecBlockRow* x);
00678
00679
00683
static string tableName;
00684
00685
00689
static vector<string> key;
00690
00691
00697
ExecBlockRow* checkAndAdd(
ExecBlockRow* x)
throw (
DuplicateKey,
UniquenessViolationException);
00698
00699
00700
00701
00702
00703
00704 vector<ExecBlockRow * > privateRows;
00705
00706
00707
00708 vector<ExecBlockRow *> row;
00709
00710
00711
void error()
throw(
ConversionException);
00712
00713 };
00714
00715 }
00716
00717
#endif