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 CalPointingModelTable_CLASS
00035 #define CalPointingModelTable_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 #include "CPointingModelMode.h"
00112 using namespace PointingModelModeMod;
00113
00114
00115
00116 #include "CReceiverBand.h"
00117 using namespace ReceiverBandMod;
00118
00119
00120
00121 #ifndef WITHOUT_ACS
00122 #include <asdmIDLC.h>
00123 using asdmIDL::CalPointingModelTableIDL;
00124 #endif
00125
00126 using asdm::Angle;
00127 using asdm::AngularRate;
00128 using asdm::ArrayTime;
00129 using asdm::Complex;
00130 using asdm::Entity;
00131 using asdm::EntityId;
00132 using asdm::EntityRef;
00133 using asdm::Flux;
00134 using asdm::Frequency;
00135 using asdm::Humidity;
00136 using asdm::Interval;
00137 using asdm::Length;
00138 using asdm::PartId;
00139 using asdm::Pressure;
00140 using asdm::Speed;
00141 using asdm::Tag;
00142 using asdm::Temperature;
00143
00144 using asdm::DuplicateKey;
00145 using asdm::ConversionException;
00146 using asdm::NoSuchRow;
00147 using asdm::DuplicateKey;
00148
00149 #include <Representable.h>
00150
00151 namespace asdm {
00152
00153
00154
00155
00156 class ASDM;
00157 class CalPointingModelRow;
00299 class CalPointingModelTable : public Representable {
00300 friend class asdm::ASDM;
00301
00302 public:
00303
00304
00310 static vector<string> getKeyName();
00311
00312
00313 virtual ~CalPointingModelTable();
00314
00320 ASDM &getContainer() const;
00321
00327 unsigned int size() ;
00328
00334 string getName() const;
00335
00339 Entity getEntity() const;
00340
00345 void setEntity(Entity e);
00346
00347
00348
00349
00350
00355 CalPointingModelRow *newRow();
00356
00361 CalPointingModelRow* newRowEmpty();
00362
00363
00407 CalPointingModelRow *newRow(Tag calDataId, Tag calReductionId, string antennaName, ReceiverBand receiverBand, AntennaMake antennaMake, int numObs, int numCoeff, ArrayTime startValidTime, ArrayTime endValidTime, int numFormula, Angle azimuthRms, Angle elevationRms, Angle skyRms, vector<string > coeffName, vector<float > coeffVal, vector<float > coeffError, vector<bool > coeffFixed, vector<string > coeffFormula, PointingModelMode pointingModelMode);
00408
00413 CalPointingModelRow *newRowFull(Tag calDataId, Tag calReductionId, string antennaName, ReceiverBand receiverBand, AntennaMake antennaMake, int numObs, int numCoeff, ArrayTime startValidTime, ArrayTime endValidTime, int numFormula, Angle azimuthRms, Angle elevationRms, Angle skyRms, vector<string > coeffName, vector<float > coeffVal, vector<float > coeffError, vector<bool > coeffFixed, vector<string > coeffFormula, PointingModelMode pointingModelMode);
00414
00415
00428 CalPointingModelRow *newRow(CalPointingModelRow *row);
00429
00434 CalPointingModelRow *newRowCopy(CalPointingModelRow *row);
00435
00436
00437
00438
00439
00440
00453 CalPointingModelRow* add(CalPointingModelRow* x) ;
00454
00455
00456
00457
00458
00459
00460
00461
00462
00468 vector<CalPointingModelRow *> get() ;
00469
00470
00471
00472
00473
00489 CalPointingModelRow* CalPointingModelTable::getRowByKey(Tag calDataId, Tag calReductionId, string antennaName, ReceiverBand receiverBand);
00490
00491
00492
00493
00494
00540 CalPointingModelRow* lookup(Tag calDataId, Tag calReductionId, string antennaName, ReceiverBand receiverBand, AntennaMake antennaMake, int numObs, int numCoeff, ArrayTime startValidTime, ArrayTime endValidTime, int numFormula, Angle azimuthRms, Angle elevationRms, Angle skyRms, vector<string > coeffName, vector<float > coeffVal, vector<float > coeffError, vector<bool > coeffFixed, vector<string > coeffFormula, PointingModelMode pointingModelMode);
00541
00542
00543 #ifndef WITHOUT_ACS
00544
00550 CalPointingModelTableIDL *toIDL() ;
00551 #endif
00552
00553 #ifndef WITHOUT_ACS
00554
00560 void fromIDL(CalPointingModelTableIDL x) throw(DuplicateKey,ConversionException);
00561 #endif
00562
00566 char *toFITS() const throw(ConversionException);
00567
00571 void fromFITS(char *fits) throw(ConversionException);
00572
00576 string toVOTable() const throw(ConversionException);
00577
00581 void fromVOTable(string vo) throw(ConversionException);
00582
00589 string toXML() throw(ConversionException);
00590
00596 void fromXML(string xmlDoc) throw(ConversionException);
00597
00603 string toMIME();
00604
00611 void setFromMIME(const string & mimeMsg);
00612
00622 void toFile(string directory);
00623
00632 void setFromFile(const string& directory);
00633
00634 private:
00635
00644 CalPointingModelTable (ASDM & container);
00645
00646 ASDM & container;
00647
00648 bool archiveAsBin;
00649 bool fileAsBin ;
00650
00651 Entity entity;
00652
00653
00654
00658 static string tableName;
00659
00660
00664 static vector<string> key;
00665
00666
00672 CalPointingModelRow* checkAndAdd(CalPointingModelRow* x) throw (DuplicateKey);
00673
00674
00675
00676
00677
00678
00679 vector<CalPointingModelRow * > privateRows;
00680
00681
00682
00683 vector<CalPointingModelRow *> row;
00684
00685
00686 void error() throw(ConversionException);
00687
00688 };
00689
00690 }
00691
00692 #endif