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, ReceiverBand receiverBand, vector<AtmPhaseCorrection > atmPhaseCorrections, vector<PolarizationType > polarizationTypes, ArrayTime startValidTime, ArrayTime endValidTime, vector<Frequency > frequencyRange);
00353
00358 CalAmpliRow *newRowFull(Tag calDataId, Tag calReductionId, string antennaName, int numAPC, int numReceptor, ReceiverBand receiverBand, vector<AtmPhaseCorrection > atmPhaseCorrections, vector<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* CalAmpliTable::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, ReceiverBand receiverBand, vector<AtmPhaseCorrection > atmPhaseCorrections, vector<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