casacore
MSSelectableMainColumn.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 //# MSSelectableMainColumn.h: The generic interface for tables that can be used with MSSelection
3 //# Copyright (C) 1996,1997,1998,1999,2001
4 //# Associated Universities, Inc. Washington DC, USA.
5 //#
6 //# This library is free software; you can redistribute it and/or modify it
7 //# under the terms of the GNU Library General Public License as published by
8 //# the Free Software Foundation; either version 2 of the License, or (at your
9 //# option) any later version.
10 //#
11 //# This library is distributed in the hope that it will be useful, but WITHOUT
12 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 //# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
14 //# License for more details.
15 //#
16 //# You should have received a copy of the GNU Library General Public License
17 //# along with this library; if not, write to the Free Software Foundation,
18 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
19 //#
20 //# Correspondence concerning AIPS++ should be addressed as follows:
21 //# Internet email: aips2-request@nrao.edu.
22 //# Postal address: AIPS++ Project Office
23 //# National Radio Astronomy Observatory
24 //# 520 Edgemont Road
25 //# Charlottesville, VA 22903-2475 USA
26 //#
27 //#
28 //# $Id: HostInfoDarwin.h 21521 2014-12-10 08:06:42Z gervandiepen $
29 
30 #ifndef MS_MSSELECTABLEMAINCOLUMN_H
31 #define MS_MSSELECTABLEMAINCOLUMN_H
32 
33 #include <casacore/casa/aips.h>
34 #include <casacore/casa/BasicSL/String.h>
35 #include <casacore/casa/Arrays/Vector.h>
36 #include <casacore/casa/Arrays/Matrix.h>
37 #include <casacore/casa/Arrays/Cube.h>
38 #include <casacore/tables/TaQL/ExprNode.h>
39 #include <casacore/ms/MeasurementSets/MeasurementSet.h>
40 #include <casacore/ms/MeasurementSets/MSMainEnums.h>
41 #include <casacore/ms/MSSel/MSSelectionError.h>
42 #include <casacore/ms/MSSel/MSSelectableTable.h>
43 #include <casacore/ms/MeasurementSets/MSMainColumns.h>
44 namespace casacore { //# NAMESPACE CASACORE - BEGIN
45 
47  {
48  public:
49  MSSelectableMainColumn(const Table& msLikeTable) {init(msLikeTable);}
52 
53  virtual void init(const Table& msLikeTable) {table_p=&msLikeTable;}
54  const Table* table() {return table_p;}
55  virtual const ArrayColumn<Bool>& flag() = 0;
56  virtual Bool flagRow(const Int& i) = 0;
57  virtual const ScalarQuantColumn<Double>& exposureQuant() = 0;
58  virtual const ScalarQuantColumn<Double>& timeQuant() = 0;
59  virtual const MeasurementSet *asMS() = 0;
60 
61  protected:
62  const Table *table_p;
63  };
64 
66  {
67  public:
69  MSMainColInterface(const Table& msAsTable): MSSelectableMainColumn(msAsTable)
70  {init(msAsTable);}
71 
72  virtual ~MSMainColInterface() {if (msCols_p) delete msCols_p;}
73 
74  virtual void init(const Table& msAsTable)
76  virtual const ArrayColumn<Bool>& flag() {return msCols_p->flag();}
77 
78  // virtual Bool flagRow(const Int& i) {return allTrue(msCols_p->flag()(i));}
79  virtual Bool flagRow(const Int& i) {return msCols_p->flagRow()(i);}
81  virtual const ScalarQuantColumn<Double>& timeQuant() {return msCols_p->timeQuant();}
82 
83  virtual const MeasurementSet *asMS(){return static_cast<const MeasurementSet *>(table());}
84  private:
87 
88  };
89 
90 } //# NAMESPACE CASACORE - END
91 
92 #endif
casacore::MSMainColInterface::MSMainColInterface
MSMainColInterface()
Definition: MSSelectableMainColumn.h:68
casacore::MSMainColInterface::flag
virtual const ArrayColumn< Bool > & flag()
Definition: MSSelectableMainColumn.h:76
casacore::MSSelectableMainColumn::~MSSelectableMainColumn
virtual ~MSSelectableMainColumn()
Definition: MSSelectableMainColumn.h:51
casacore::MSMainColumns::flag
ArrayColumn< Bool > & flag()
Definition: MSMainColumns.h:128
casacore::MSSelectableMainColumn::asMS
virtual const MeasurementSet * asMS()=0
casacore::MSSelectableMainColumn::flagRow
virtual Bool flagRow(const Int &i)=0
casacore::MSSelectableMainColumn::table
const Table * table()
Definition: MSSelectableMainColumn.h:54
casacore::MSMainColumns::timeQuant
ScalarQuantColumn< Double > & timeQuant()
Definition: MSMainColumns.h:140
casacore::ArrayColumn< Bool >
casacore::MSMainColumns::flagRow
ScalarColumn< Bool > & flagRow()
Definition: MSMainColumns.h:130
casacore::MSSelectableMainColumn::table_p
const Table * table_p
Definition: MSSelectableMainColumn.h:62
casacore::MSSelectableMainColumn::init
virtual void init(const Table &msLikeTable)
Definition: MSSelectableMainColumn.h:53
casacore::MSMainColInterface::MSMainColInterface
MSMainColInterface(const Table &msAsTable)
Definition: MSSelectableMainColumn.h:69
casacore::Table
Main interface class to a read/write table.
Definition: Table.h:153
casacore::MSMainColumns
A class for easy access to MeasurementSet main table columns.
Definition: MSMainColumns.h:106
casacore::MSMainColInterface::msCols_p
MSMainColumns * msCols_p
Definition: MSSelectableMainColumn.h:86
casacore::MSSelectableMainColumn::exposureQuant
virtual const ScalarQuantColumn< Double > & exposureQuant()=0
casacore::MSMainColInterface::exposureQuant
virtual const ScalarQuantColumn< Double > & exposureQuant()
Definition: MSSelectableMainColumn.h:80
casacore::MSMainColInterface::timeQuant
virtual const ScalarQuantColumn< Double > & timeQuant()
Definition: MSSelectableMainColumn.h:81
casacore::Int
int Int
Definition: aipstype.h:50
casacore
this file contains all the compiler specific defines
Definition: mainpage.dox:28
casacore::MSSelectableMainColumn::timeQuant
virtual const ScalarQuantColumn< Double > & timeQuant()=0
casacore::MSSelectableMainColumn::MSSelectableMainColumn
MSSelectableMainColumn()
Definition: MSSelectableMainColumn.h:50
casacore::MSSelectableMainColumn::MSSelectableMainColumn
MSSelectableMainColumn(const Table &msLikeTable)
Definition: MSSelectableMainColumn.h:49
casacore::ScalarQuantColumn< Double >
casacore::MeasurementSet
A Table intended to hold astronomical data (a set of Measurements).
Definition: MeasurementSet.h:241
casacore::MSMainColInterface::ms_p
MeasurementSet ms_p
Definition: MSSelectableMainColumn.h:85
casacore::Bool
bool Bool
Define the standard types used by Casacore.
Definition: aipstype.h:42
casacore::MSMainColInterface::flagRow
virtual Bool flagRow(const Int &i)
virtual Bool flagRow(const Int& i) {return allTrue(msCols_p->flag()(i));}
Definition: MSSelectableMainColumn.h:79
casacore::MSSelectableMainColumn::flag
virtual const ArrayColumn< Bool > & flag()=0
casacore::MSMainColInterface
Definition: MSSelectableMainColumn.h:65
casacore::MSMainColumns::exposureQuant
ScalarQuantColumn< Double > & exposureQuant()
Definition: MSMainColumns.h:123
casacore::MSMainColInterface::init
virtual void init(const Table &msAsTable)
Definition: MSSelectableMainColumn.h:74
casacore::MSMainColInterface::asMS
virtual const MeasurementSet * asMS()
Definition: MSSelectableMainColumn.h:83
casacore::MSMainColInterface::~MSMainColInterface
virtual ~MSMainColInterface()
Definition: MSSelectableMainColumn.h:72
casacore::MSSelectableMainColumn
Definition: MSSelectableMainColumn.h:46