casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
EPointMBuf.h
Go to the documentation of this file.
1 //# EPointMBuf.h: SolvableVisJones calibration main table buffer
2 //# Copyright (C) 1996,1997,1998,2001,2002,2003
3 //# Associated Universities, Inc. Washington DC, USA.
4 //#
5 //# This library is free software; you can redistribute it and/or modify it
6 //# under the terms of the GNU Library General Public License as published by
7 //# the Free Software Foundation; either version 2 of the License, or (at your
8 //# option) any later version.
9 //#
10 //# This library is distributed in the hope that it will be useful, but WITHOUT
11 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 //# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
13 //# License for more details.
14 //#
15 //# You should have received a copy of the GNU Library General Public License
16 //# along with this library; if not, write to the Free Software Foundation,
17 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
18 //#
19 //# Correspondence concerning AIPS++ should be adressed as follows:
20 //# Internet email: aips2-request@nrao.edu.
21 //# Postal address: AIPS++ Project Office
22 //# National Radio Astronomy Observatory
23 //# 520 Edgemont Road
24 //# Charlottesville, VA 22903-2475 USA
25 //#
26 //#
27 //# $Id$
28 
29 #ifndef CALIBRATION_EPOINTMBUF_H
30 #define CALIBRATION_EPOINTMBUF_H
31 
35 namespace casa {
36 // <summary>
37 // EPointMBuf: EPoint calibration main table buffer
38 // </summary>
39 
40 // <use visibility=export>
41 
42 // <reviewed reviewer="" date="" tests="" demos="">
43 
44 // <prerequisite>
45 // <li> <linkto class="CalMainBuffer">CalMainBuffer</linkto> module
46 // <li> <linkto class="TimeVarVisJonesMBuf">TimeVarVisJonesMBuf</linkto> module
47 // </prerequisite>
48 //
49 // <etymology>
50 // From "solvable visibility Jones matrix", "cal main table" and "buffer"
51 // </etymology>
52 //
53 // <synopsis>
54 // The EPointMBuf class holds a buffer, optionally connected to a
55 // EPoint calibration main table iterator (of base type
56 // CalIterBase). Specializations for different solvable Jones matrix
57 // types are provided through inheritance.
58 // </synopsis>
59 //
60 // <example>
61 // <srcblock>
62 // </srcblock>
63 // </example>
64 //
65 // <motivation>
66 // Encapsulate EPoint calibration main table data buffers.
67 // </motivation>
68 //
69 // <todo asof="01/08/01">
70 // (i) Deal with non-standard columns.
71 // </todo>
72 
74 {
75  public:
76  // Default constructor. No connection to an underlying
77  // calibration table iterator in this case.
78  EPointMBuf();
79 
80  // Construct from a set of calibration buffer indices and
81  // their specified values. Non-index columns will be set
82  // to default values, and there is no connection to an
83  // underlying calibration table iterator in this case.
84  EPointMBuf (const casacore::Vector<casacore::Int>& calIndices,
86 
87  // Construct from a calibration table iterator. The calibration
88  // buffer will remain synchronized with the iterator.
89  EPointMBuf (CalIterBase& calIter);
90 
91  // Write the current buffer at the end of a specified cal table;
92  // returns the number of rows appended
93  virtual casacore::Int append (CalTable& calTable);
94 
95  // Maximum number of rows in the calibration buffer
96  virtual casacore::Int nRow();
97 
98  // casacore::Data field accessors
100 
101  protected:
102  // Factory method to create a columns accessor object of the appropriate type
103  virtual EPointMCol* newCalMainCol (CalTable& calTable) {
104  return new
105  EPointMCol(dynamic_cast<EPointTable&>(calTable));};
106 
107  // Calibration table columns accessor
108  virtual EPointMCol* calMainCol()
109  {return dynamic_cast<EPointMCol*>(CalMainBuffer::calMainCol());};
110 
111  // Invalidate the current cache.
112  virtual void invalidate();
113 
114  // <group>
115  // Fill the cal buffer attribute columns in an empty cal buffer,
116  // after the cal indices have been set using fillIndices(). The
117  // cal indices, specified as enums from class MSCalEnums, are excluded
118  // as non-attribute columns
119  //
120  // Use a visibility buffer to define the attribute values (NYI)
121  virtual void fillAttributes(const casacore::Vector<casacore::Int>& /*calIndices*/,
122  const VisBuffer& /*vb*/) {};
123  //
124  // Set default attribute values
125  virtual void fillAttributes(const casacore::Vector<casacore::Int>& calIndices);
126  // </group>
127 
128  private:
129  // Buffer fields
131 
132  // Buffer field status flags
134 };
135 }
136 #endif
virtual EPointMCol * newCalMainCol(CalTable &calTable)
Factory method to create a columns accessor object of the appropriate type.
Definition: EPointMBuf.h:103
int Int
Definition: aipstype.h:50
casacore::Bool pointingOffsetOK_p
Buffer field status flags.
Definition: EPointMBuf.h:133
virtual casacore::Array< casacore::Float > & pointingOffset()
casacore::Data field accessors
CalTable: Calibration table access and creation.
Definition: CalTable.h:82
virtual void invalidate()
Invalidate the current cache.
CalIterBase: Base class for calibration table iterators.
Definition: CalIterBase.h:74
virtual casacore::Int nRow()
Maximum number of rows in the calibration buffer.
EPointMBuf()
Default constructor.
EPointJonesMCol: RW SolvableVisJones cal_main column access.
Definition: EPointMCol.h:99
virtual void fillAttributes(const casacore::Vector< casacore::Int > &, const VisBuffer &)
Fill the cal buffer attribute columns in an empty cal buffer, after the cal indices have been set usi...
Definition: EPointMBuf.h:121
bool Bool
Define the standard types used by Casacore.
Definition: aipstype.h:42
EPointMBuf: EPoint calibration main table buffer.
Definition: EPointMBuf.h:73
simple 1-D array
virtual EPointMCol * calMainCol()
Calibration table columns accessor.
Definition: EPointMBuf.h:108
virtual CalMainColumns * calMainCol()
Access to the columns accessor object.
TimeVarVisJonesMBuf: TimeVarVisJones calibration main table buffer.
Definition: TimeVarVJMBuf.h:73
VisBuffers encapsulate one chunk of visibility data for processing.
Definition: VisBuffer.h:153
casacore::Array< casacore::Float > pointingOffset_p
Buffer fields.
Definition: EPointMBuf.h:130
virtual casacore::Int append(CalTable &calTable)
Write the current buffer at the end of a specified cal table; returns the number of rows appended...