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 CalFocusModelTable_CLASS
00035
#define CalFocusModelTable_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
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
#include "CReceiverBand.h"
00103
using namespace ReceiverBandMod;
00104
00105
00106
00107
#include "CAntennaMake.h"
00108
using namespace AntennaMakeMod;
00109
00110
00111
00112
#ifndef WITHOUT_ACS
00113
#include <asdmIDLC.h>
00114
using asdmIDL::CalFocusModelTableIDL;
00115
#endif
00116
00117
using asdm::Angle;
00118
using asdm::AngularRate;
00119
using asdm::ArrayTime;
00120
using asdm::Complex;
00121
using asdm::Entity;
00122
using asdm::EntityId;
00123
using asdm::EntityRef;
00124
using asdm::Flux;
00125
using asdm::Frequency;
00126
using asdm::Humidity;
00127
using asdm::Interval;
00128
using asdm::Length;
00129
using asdm::PartId;
00130
using asdm::Pressure;
00131
using asdm::Speed;
00132
using asdm::Tag;
00133
using asdm::Temperature;
00134
00135
using asdm::DuplicateKey;
00136
using asdm::ConversionException;
00137
using asdm::NoSuchRow;
00138
using asdm::DuplicateKey;
00139
00140
#include <Representable.h>
00141
00142
namespace asdm {
00143
00144
00145
00146
00147
class ASDM;
00148
class CalFocusModelRow;
00272 class CalFocusModelTable :
public Representable {
00273
friend class asdm::ASDM;
00274
00275
public:
00276
00277
00283
static vector<string>
getKeyName();
00284
00285
00286
virtual ~
CalFocusModelTable();
00287
00293
ASDM &
getContainer()
const;
00294
00300
unsigned int size() ;
00301
00307 string
getName()
const;
00308
00312
Entity getEntity()
const;
00313
00318
void setEntity(
Entity e);
00319
00320
00321
00322
00323
00328
CalFocusModelRow *
newRow();
00329
00334
CalFocusModelRow*
newRowEmpty();
00335
00336
00374
CalFocusModelRow *
newRow(
Tag calDataId,
Tag calReductionId, string antennaName, ReceiverBandMod::ReceiverBand receiverBand,
int numCoeff,
ArrayTime startValidTime,
ArrayTime endValidTime, vector<Length > focusRMS, vector<vector<string > > coeffName, vector<vector<string > > coeffFormula, vector<vector<float > > coeffValue, vector<vector<float > > coeffError, vector<vector<bool > > coeffFixed, string focusModel,
int numSourceObs, AntennaMakeMod::AntennaMake antennaMake);
00375
00380
CalFocusModelRow *
newRowFull(
Tag calDataId,
Tag calReductionId, string antennaName, ReceiverBandMod::ReceiverBand receiverBand,
int numCoeff,
ArrayTime startValidTime,
ArrayTime endValidTime, vector<Length > focusRMS, vector<vector<string > > coeffName, vector<vector<string > > coeffFormula, vector<vector<float > > coeffValue, vector<vector<float > > coeffError, vector<vector<bool > > coeffFixed, string focusModel,
int numSourceObs, AntennaMakeMod::AntennaMake antennaMake);
00381
00382
00395
CalFocusModelRow *
newRow(
CalFocusModelRow *row);
00396
00401
CalFocusModelRow *
newRowCopy(
CalFocusModelRow *row);
00402
00403
00404
00405
00406
00407
00420
CalFocusModelRow*
add(
CalFocusModelRow* x) ;
00421
00422
00423
00424
00425
00426
00427
00428
00429
00435 vector<CalFocusModelRow *>
get() ;
00436
00437
00438
00439
00440
00456
CalFocusModelRow*
getRowByKey(
Tag calDataId,
Tag calReductionId, string antennaName, ReceiverBandMod::ReceiverBand receiverBand);
00457
00458
00459
00460
00461
00501
CalFocusModelRow*
lookup(
Tag calDataId,
Tag calReductionId, string antennaName, ReceiverBandMod::ReceiverBand receiverBand,
int numCoeff,
ArrayTime startValidTime,
ArrayTime endValidTime, vector<Length > focusRMS, vector<vector<string > > coeffName, vector<vector<string > > coeffFormula, vector<vector<float > > coeffValue, vector<vector<float > > coeffError, vector<vector<bool > > coeffFixed, string focusModel,
int numSourceObs, AntennaMakeMod::AntennaMake antennaMake);
00502
00503
00504
#ifndef WITHOUT_ACS
00505
00511 CalFocusModelTableIDL *
toIDL() ;
00512
#endif
00513
00514
#ifndef WITHOUT_ACS
00515
00521
void fromIDL(CalFocusModelTableIDL x)
throw(
DuplicateKey,
ConversionException);
00522
#endif
00523
00527
char *
toFITS()
const throw(
ConversionException);
00528
00532
void fromFITS(
char *fits)
throw(
ConversionException);
00533
00537 string
toVOTable()
const throw(
ConversionException);
00538
00542
void fromVOTable(string vo)
throw(
ConversionException);
00543
00550 string
toXML()
throw(
ConversionException);
00551
00557
void fromXML(string xmlDoc)
throw(
ConversionException);
00558
00564 string
toMIME();
00565
00572
void setFromMIME(
const string & mimeMsg);
00573
00583
void toFile(string directory);
00584
00593
void setFromFile(
const string& directory);
00594
00595
private:
00596
00605
CalFocusModelTable (
ASDM & container);
00606
00607
ASDM & container;
00608
00609
bool archiveAsBin;
00610
bool fileAsBin ;
00611
00612
Entity entity;
00613
00614
00615
00619
static string tableName;
00620
00621
00625
static vector<string> key;
00626
00627
00633
CalFocusModelRow* checkAndAdd(
CalFocusModelRow* x)
throw (
DuplicateKey);
00634
00635
00636
00637
00638
00639
00640 vector<CalFocusModelRow * > privateRows;
00641
00642
00643
00644 vector<CalFocusModelRow *> row;
00645
00646
00647
void error()
throw(
ConversionException);
00648
00649 };
00650
00651 }
00652
00653
#endif