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 CalHolographyTable_CLASS
00035
#define CalHolographyTable_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
#include "CAntennaMake.h"
00081
using namespace AntennaMakeMod;
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
#include "CPolarizationType.h"
00114
using namespace PolarizationTypeMod;
00115
00116
00117
00118
#include "CReceiverBand.h"
00119
using namespace ReceiverBandMod;
00120
00121
00122
00123
00124
00125
00126
00127
#ifndef WITHOUT_ACS
00128
#include <asdmIDLC.h>
00129
using asdmIDL::CalHolographyTableIDL;
00130
#endif
00131
00132
using asdm::Angle;
00133
using asdm::AngularRate;
00134
using asdm::ArrayTime;
00135
using asdm::Complex;
00136
using asdm::Entity;
00137
using asdm::EntityId;
00138
using asdm::EntityRef;
00139
using asdm::Flux;
00140
using asdm::Frequency;
00141
using asdm::Humidity;
00142
using asdm::Interval;
00143
using asdm::Length;
00144
using asdm::PartId;
00145
using asdm::Pressure;
00146
using asdm::Speed;
00147
using asdm::Tag;
00148
using asdm::Temperature;
00149
00150
using asdm::DuplicateKey;
00151
using asdm::ConversionException;
00152
using asdm::NoSuchRow;
00153
using asdm::DuplicateKey;
00154
00155
#include <Representable.h>
00156
00157
namespace asdm {
00158
00159
00160
00161
00162
class ASDM;
00163
class CalHolographyRow;
00321 class CalHolographyTable :
public Representable {
00322
friend class asdm::ASDM;
00323
00324
public:
00325
00326
00332
static vector<string>
getKeyName();
00333
00334
00335
virtual ~
CalHolographyTable();
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
CalHolographyRow *
newRow();
00378
00383
CalHolographyRow*
newRowEmpty();
00384
00385
00435
CalHolographyRow *
newRow(
Tag calDataId,
Tag calReductionId, string antennaName, AntennaMakeMod::AntennaMake antennaMake,
int numScrew,
int numReceptor,
ArrayTime startValidTime,
ArrayTime endValidTime, vector<Length > focusPosition,
Length rawRms,
Length weightedRms, vector<string > screwName, vector<Length > screwMotion, vector<Length > screwMotionError,
int panelModes, vector<Frequency > frequencyRange,
EntityRef beamMapUID,
EntityRef surfaceMapUID, vector<PolarizationTypeMod::PolarizationType > polarizationTypes, ReceiverBandMod::ReceiverBand receiverBand, vector<Angle > direction,
Temperature ambientTemperature);
00436
00441
CalHolographyRow *
newRowFull(
Tag calDataId,
Tag calReductionId, string antennaName, AntennaMakeMod::AntennaMake antennaMake,
int numScrew,
int numReceptor,
ArrayTime startValidTime,
ArrayTime endValidTime, vector<Length > focusPosition,
Length rawRms,
Length weightedRms, vector<string > screwName, vector<Length > screwMotion, vector<Length > screwMotionError,
int panelModes, vector<Frequency > frequencyRange,
EntityRef beamMapUID,
EntityRef surfaceMapUID, vector<PolarizationTypeMod::PolarizationType > polarizationTypes, ReceiverBandMod::ReceiverBand receiverBand, vector<Angle > direction,
Temperature ambientTemperature);
00442
00443
00456
CalHolographyRow *
newRow(
CalHolographyRow *row);
00457
00462
CalHolographyRow *
newRowCopy(
CalHolographyRow *row);
00463
00464
00465
00466
00467
00468
00481
CalHolographyRow*
add(
CalHolographyRow* x) ;
00482
00483
00484
00485
00486
00487
00488
00489
00490
00496 vector<CalHolographyRow *>
get() ;
00497
00498
00499
00500
00501
00515
CalHolographyRow*
getRowByKey(
Tag calDataId,
Tag calReductionId, string antennaName);
00516
00517
00518
00519
00520
00572
CalHolographyRow*
lookup(
Tag calDataId,
Tag calReductionId, string antennaName, AntennaMakeMod::AntennaMake antennaMake,
int numScrew,
int numReceptor,
ArrayTime startValidTime,
ArrayTime endValidTime, vector<Length > focusPosition,
Length rawRms,
Length weightedRms, vector<string > screwName, vector<Length > screwMotion, vector<Length > screwMotionError,
int panelModes, vector<Frequency > frequencyRange,
EntityRef beamMapUID,
EntityRef surfaceMapUID, vector<PolarizationTypeMod::PolarizationType > polarizationTypes, ReceiverBandMod::ReceiverBand receiverBand, vector<Angle > direction,
Temperature ambientTemperature);
00573
00574
00575
#ifndef WITHOUT_ACS
00576
00582 CalHolographyTableIDL *
toIDL() ;
00583
#endif
00584
00585
#ifndef WITHOUT_ACS
00586
00592
void fromIDL(CalHolographyTableIDL x)
throw(
DuplicateKey,
ConversionException);
00593
#endif
00594
00598
char *
toFITS()
const throw(
ConversionException);
00599
00603
void fromFITS(
char *fits)
throw(
ConversionException);
00604
00608 string
toVOTable()
const throw(
ConversionException);
00609
00613
void fromVOTable(string vo)
throw(
ConversionException);
00614
00621 string
toXML()
throw(
ConversionException);
00622
00628
void fromXML(string xmlDoc)
throw(
ConversionException);
00629
00635 string
toMIME();
00636
00643
void setFromMIME(
const string & mimeMsg);
00644
00654
void toFile(string directory);
00655
00664
void setFromFile(
const string& directory);
00665
00666
private:
00667
00676
CalHolographyTable (
ASDM & container);
00677
00678
ASDM & container;
00679
00680
bool archiveAsBin;
00681
bool fileAsBin ;
00682
00683
Entity entity;
00684
00685
00686
00690
static string tableName;
00691
00692
00696
static vector<string> key;
00697
00698
00704
CalHolographyRow* checkAndAdd(
CalHolographyRow* x)
throw (
DuplicateKey);
00705
00706
00707
00708
00709
00710
00711 vector<CalHolographyRow * > privateRows;
00712
00713
00714
00715 vector<CalHolographyRow *> row;
00716
00717
00718
void error()
throw(
ConversionException);
00719
00720 };
00721
00722 }
00723
00724
#endif