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, 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<PolarizationType > polarizationTypes, ReceiverBand receiverBand, vector<Angle > direction, Temperature ambientTemperature);
00436
00441 CalHolographyRow *newRowFull(Tag calDataId, Tag calReductionId, string antennaName, 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<PolarizationType > polarizationTypes, 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* CalHolographyTable::getRowByKey(Tag calDataId, Tag calReductionId, string antennaName);
00516
00517
00518
00519
00520
00572 CalHolographyRow* lookup(Tag calDataId, Tag calReductionId, string antennaName, 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<PolarizationType > polarizationTypes, 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