VisModelDataI.h
Go to the documentation of this file.00001 #include <casa/aips.h>
00002
00003 #if ! defined (MSVIS_VisModelDataI_H)
00004 #define MSVIS_VisModelDataI_H
00005
00006 namespace casa {
00007
00008 class MeasurementSet;
00009 class RecordInterface;
00010 class String;
00011 class TableRecord;
00012 class VisBuffer;
00013 namespace vi{class VisBuffer2;}
00014
00015 class VisModelDataI;
00016
00017 template <typename T> class Vector;
00018
00019
00020 class VisModelDataI {
00021
00022 public:
00023
00024 typedef VisModelDataI * (* Factory) ();
00025
00026 static bool setFactory (Factory, Int whichone=0);
00027
00028
00029 VisModelDataI() {}
00030
00031
00032
00033 virtual ~VisModelDataI() {}
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046 virtual void addModel(const RecordInterface& rec, const Vector<Int>& msids, const VisBuffer& vb) = 0;
00047 virtual void addModel(const RecordInterface& rec, const Vector<Int>& msids, const vi::VisBuffer2& vb) = 0;
00048 virtual VisModelDataI * clone () = 0;
00049
00050 static VisModelDataI * create ();
00051 static VisModelDataI * create2 ();
00052
00053 virtual Bool getModelVis(VisBuffer& vb) = 0;
00054 virtual Bool getModelVis(vi::VisBuffer2& vb) = 0;
00055
00056
00057 virtual void putModelI (const MeasurementSet& thems, const RecordInterface& rec,
00058 const Vector<Int>& validfields, const Vector<Int>& spws,
00059 const Vector<Int>& starts, const Vector<Int>& nchan,
00060 const Vector<Int>& incr, Bool iscomponentlist=True, Bool incremental=False) = 0;
00061
00062
00063
00064 virtual void clearModelI(const MeasurementSet& thems) = 0;
00065
00066
00067
00068
00069 virtual Bool isModelDefinedI(const Int fieldId, const MeasurementSet& thems, String& key, Int& sourceRow) = 0;
00070
00071
00072
00073
00074 virtual Bool getModelRecordI(const String& theKey, TableRecord& theRec, const MeasurementSet& theMs) = 0;
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086 virtual Int hasModel(Int msid, Int field, Int spw) = 0;
00087
00088 private:
00089
00090 static Factory factory_p;
00091 static Factory factory2_p;
00092
00093 };
00094
00095
00096
00097 }
00098
00099 #endif // ! defined (MSVIS_VisModelDataI_H)