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 CalAmpliTable_CLASS
00035
#define CalAmpliTable_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
#include "CReceiverBand.h"
00083
using namespace ReceiverBandMod;
00084
00085
00086
00087
00088
00089
#include "CAtmPhaseCorrection.h"
00090
using namespace AtmPhaseCorrectionMod;
00091
00092
00093
00094
#include "CPolarizationType.h"
00095
using namespace PolarizationTypeMod;
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
#ifndef WITHOUT_ACS
00112
#include <asdmIDLC.h>
00113
using asdmIDL::CalAmpliTableIDL;
00114
#endif
00115
00116
using asdm::Angle;
00117
using asdm::AngularRate;
00118
using asdm::ArrayTime;
00119
using asdm::Complex;
00120
using asdm::Entity;
00121
using asdm::EntityId;
00122
using asdm::EntityRef;
00123
using asdm::Flux;
00124
using asdm::Frequency;
00125
using asdm::Humidity;
00126
using asdm::Interval;
00127
using asdm::Length;
00128
using asdm::PartId;
00129
using asdm::Pressure;
00130
using asdm::Speed;
00131
using asdm::Tag;
00132
using asdm::Temperature;
00133
00134
using asdm::DuplicateKey;
00135
using asdm::ConversionException;
00136
using asdm::NoSuchRow;
00137
using asdm::DuplicateKey;
00138
00139
#include <Representable.h>
00140
00141
namespace asdm {
00142
00143
00144
00145
00146
class ASDM;
00147
class CalAmpliRow;
00260 class CalAmpliTable :
public Representable {
00261
friend class asdm::ASDM;
00262
00263
public:
00264
00265
00271
static vector<string>
getKeyName();
00272
00273
00274
virtual ~
CalAmpliTable();
00275
00281
ASDM &
getContainer()
const;
00282
00288
unsigned int size() ;
00289
00295 string
getName()
const;
00296
00300
Entity getEntity()
const;
00301
00306
void setEntity(
Entity e);
00307
00308
00309
00310
00311
00316
CalAmpliRow *
newRow();
00317
00322
CalAmpliRow*
newRowEmpty();
00323
00324
00352
CalAmpliRow *
newRow(
Tag calDataId,
Tag calReductionId, string antennaName,
int numAPC,
int numReceptor, ReceiverBandMod::ReceiverBand receiverBand, vector<AtmPhaseCorrectionMod::AtmPhaseCorrection > atmPhaseCorrections, vector<PolarizationTypeMod::PolarizationType > polarizationTypes,
ArrayTime startValidTime,
ArrayTime endValidTime, vector<Frequency > frequencyRange);
00353
00358
CalAmpliRow *
newRowFull(
Tag calDataId,
Tag calReductionId, string antennaName,
int numAPC,
int numReceptor, ReceiverBandMod::ReceiverBand receiverBand, vector<AtmPhaseCorrectionMod::AtmPhaseCorrection > atmPhaseCorrections, vector<PolarizationTypeMod::PolarizationType > polarizationTypes,
ArrayTime startValidTime,
ArrayTime endValidTime, vector<Frequency > frequencyRange);
00359
00360
00373
CalAmpliRow *
newRow(
CalAmpliRow *row);
00374
00379
CalAmpliRow *
newRowCopy(
CalAmpliRow *row);
00380
00381
00382
00383
00384
00385
00398
CalAmpliRow*
add(
CalAmpliRow* x) ;
00399
00400
00401
00402
00403
00404
00405
00406
00407
00413 vector<CalAmpliRow *>
get() ;
00414
00415
00416
00417
00418
00432
CalAmpliRow*
getRowByKey(
Tag calDataId,
Tag calReductionId, string antennaName);
00433
00434
00435
00436
00437
00467
CalAmpliRow*
lookup(
Tag calDataId,
Tag calReductionId, string antennaName,
int numAPC,
int numReceptor, ReceiverBandMod::ReceiverBand receiverBand, vector<AtmPhaseCorrectionMod::AtmPhaseCorrection > atmPhaseCorrections, vector<PolarizationTypeMod::PolarizationType > polarizationTypes,
ArrayTime startValidTime,
ArrayTime endValidTime, vector<Frequency > frequencyRange);
00468
00469
00470
#ifndef WITHOUT_ACS
00471
00477 CalAmpliTableIDL *
toIDL() ;
00478
#endif
00479
00480
#ifndef WITHOUT_ACS
00481
00487
void fromIDL(CalAmpliTableIDL x)
throw(
DuplicateKey,
ConversionException);
00488
#endif
00489
00493
char *
toFITS()
const throw(
ConversionException);
00494
00498
void fromFITS(
char *fits)
throw(
ConversionException);
00499
00503 string
toVOTable()
const throw(
ConversionException);
00504
00508
void fromVOTable(string vo)
throw(
ConversionException);
00509
00516 string
toXML()
throw(
ConversionException);
00517
00523
void fromXML(string xmlDoc)
throw(
ConversionException);
00524
00530 string
toMIME();
00531
00538
void setFromMIME(
const string & mimeMsg);
00539
00549
void toFile(string directory);
00550
00559
void setFromFile(
const string& directory);
00560
00561
private:
00562
00571
CalAmpliTable (
ASDM & container);
00572
00573
ASDM & container;
00574
00575
bool archiveAsBin;
00576
bool fileAsBin ;
00577
00578
Entity entity;
00579
00580
00581
00585
static string tableName;
00586
00587
00591
static vector<string> key;
00592
00593
00599
CalAmpliRow* checkAndAdd(
CalAmpliRow* x)
throw (
DuplicateKey);
00600
00601
00602
00603
00604
00605
00606 vector<CalAmpliRow * > privateRows;
00607
00608
00609
00610 vector<CalAmpliRow *> row;
00611
00612
00613
void error()
throw(
ConversionException);
00614
00615 };
00616
00617 }
00618
00619
#endif