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 SBSummaryTable_CLASS
00035
#define SBSummaryTable_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
#include "CSBType.h"
00087
using namespace SBTypeMod;
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
#ifndef WITHOUT_ACS
00114
#include <asdmIDLC.h>
00115
using asdmIDL::SBSummaryTableIDL;
00116
#endif
00117
00118
using asdm::Angle;
00119
using asdm::AngularRate;
00120
using asdm::ArrayTime;
00121
using asdm::Complex;
00122
using asdm::Entity;
00123
using asdm::EntityId;
00124
using asdm::EntityRef;
00125
using asdm::Flux;
00126
using asdm::Frequency;
00127
using asdm::Humidity;
00128
using asdm::Interval;
00129
using asdm::Length;
00130
using asdm::PartId;
00131
using asdm::Pressure;
00132
using asdm::Speed;
00133
using asdm::Tag;
00134
using asdm::Temperature;
00135
00136
using asdm::DuplicateKey;
00137
using asdm::ConversionException;
00138
using asdm::NoSuchRow;
00139
using asdm::DuplicateKey;
00140
00141
#include <Representable.h>
00142
00143
namespace asdm {
00144
00145
00146
00147
00148
class ASDM;
00149
class SBSummaryRow;
00267 class SBSummaryTable :
public Representable {
00268
friend class asdm::ASDM;
00269
00270
public:
00271
00272
00278
static vector<string>
getKeyName();
00279
00280
00281
virtual ~
SBSummaryTable();
00282
00288
ASDM &
getContainer()
const;
00289
00295
unsigned int size() ;
00296
00302 string
getName()
const;
00303
00307
Entity getEntity()
const;
00308
00313
void setEntity(
Entity e);
00314
00315
00316
00317
00318
00323
SBSummaryRow *
newRow();
00324
00329
SBSummaryRow*
newRowEmpty();
00330
00331
00369
SBSummaryRow *
newRow(
EntityRef sbId,
EntityRef projectId,
EntityRef obsUnitSetId, string sbIntent, SBTypeMod::SBType sbType,
Interval sbDuration,
int numScan, vector<string > scanIntent,
int numberRepeats, vector<string > weatherConstraint, vector<string > scienceGoal,
double raCenter,
double decCenter,
double frequency, string frequencyBand, vector<string > observingMode);
00370
00375
SBSummaryRow *
newRowFull(
EntityRef sbId,
EntityRef projectId,
EntityRef obsUnitSetId, string sbIntent, SBTypeMod::SBType sbType,
Interval sbDuration,
int numScan, vector<string > scanIntent,
int numberRepeats, vector<string > weatherConstraint, vector<string > scienceGoal,
double raCenter,
double decCenter,
double frequency, string frequencyBand, vector<string > observingMode);
00376
00377
00390
SBSummaryRow *
newRow(
SBSummaryRow *row);
00391
00396
SBSummaryRow *
newRowCopy(
SBSummaryRow *row);
00397
00398
00399
00400
00401
00402
00415
SBSummaryRow*
add(
SBSummaryRow* x) ;
00416
00417
00418
00419
00420
00421
00422
00423
00424
00430 vector<SBSummaryRow *>
get() ;
00431
00432
00433
00434
00435
00445
SBSummaryRow*
getRowByKey(
EntityRef sbId);
00446
00447
00448
00449
00450
00490
SBSummaryRow*
lookup(
EntityRef sbId,
EntityRef projectId,
EntityRef obsUnitSetId, string sbIntent, SBTypeMod::SBType sbType,
Interval sbDuration,
int numScan, vector<string > scanIntent,
int numberRepeats, vector<string > weatherConstraint, vector<string > scienceGoal,
double raCenter,
double decCenter,
double frequency, string frequencyBand, vector<string > observingMode);
00491
00492
00493
#ifndef WITHOUT_ACS
00494
00500 SBSummaryTableIDL *
toIDL() ;
00501
#endif
00502
00503
#ifndef WITHOUT_ACS
00504
00510
void fromIDL(SBSummaryTableIDL x)
throw(
DuplicateKey,
ConversionException);
00511
#endif
00512
00516
char *
toFITS()
const throw(
ConversionException);
00517
00521
void fromFITS(
char *fits)
throw(
ConversionException);
00522
00526 string
toVOTable()
const throw(
ConversionException);
00527
00531
void fromVOTable(string vo)
throw(
ConversionException);
00532
00539 string
toXML()
throw(
ConversionException);
00540
00546
void fromXML(string xmlDoc)
throw(
ConversionException);
00547
00553 string
toMIME();
00554
00561
void setFromMIME(
const string & mimeMsg);
00562
00572
void toFile(string directory);
00573
00582
void setFromFile(
const string& directory);
00583
00584
private:
00585
00594
SBSummaryTable (
ASDM & container);
00595
00596
ASDM & container;
00597
00598
bool archiveAsBin;
00599
bool fileAsBin ;
00600
00601
Entity entity;
00602
00603
00604
00608
static string tableName;
00609
00610
00614
static vector<string> key;
00615
00616
00622
SBSummaryRow* checkAndAdd(
SBSummaryRow* x)
throw (
DuplicateKey);
00623
00624
00625
00626
00627
00628
00629 vector<SBSummaryRow * > privateRows;
00630
00631
00632
00633 vector<SBSummaryRow *> row;
00634
00635
00636
void error()
throw(
ConversionException);
00637
00638 };
00639
00640 }
00641
00642
#endif