casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ViiLayerFactory.h
Go to the documentation of this file.
1 //# ViiLayerFactory.h: Recursive factory definition for layered ViImplementation2s
2 //# Copyright (C) 1996,1997,1998,1999,2000,2001,2002,2003,2016
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 addressed 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 #ifndef MSVIS_VIILAYERFACTORY2_H
28 #define MSVIS_VIILAYERFACTORY2_H
29 
30 #include <casa/aips.h>
31 #include <casa/Arrays/Vector.h>
32 
33 namespace casa { //# NAMESPACE CASA - BEGIN
34 
35 namespace vi {
36 
37 class ViImplementation2;
38 
39 
40 
42 //
43 // Class ViiLayerFactory
44 //
45 
47 
48 public:
49 
50  virtual ~ViiLayerFactory () {}
51 
53 
54 protected:
55 
56  // Make a ViImplementation with another as input
57  // Must be specialized for each type
58  virtual ViImplementation2 * createInstance (ViImplementation2*) const = 0;
59 
60 };
61 
62 } // end namespace vi
63 
64 } //# NAMESPACE CASA - END
65 
66 #endif
A 1-D Specialization of the Array class.
virtual ViImplementation2 * createInstance(ViImplementation2 *) const =0
Make a ViImplementation with another as input Must be specialized for each type.
VisibilityIterator2 iterates through one or more readonly MeasurementSets.
virtual ViImplementation2 * createViImpl2(casacore::Vector< ViiLayerFactory * > viifactories) const