casacore
scimath
Functionals
AbstractFunctionFactory.h
Go to the documentation of this file.
1
//# FunctionFactory.h: a class for creating Function objects from Records
2
//# Copyright (C) 2002
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
//# $Id$
28
29
#ifndef SCIMATH_ABSTRACTFUNCTIONFACTORY_H
30
#define SCIMATH_ABSTRACTFUNCTIONFACTORY_H
31
32
#include <casacore/casa/aips.h>
33
#include <casacore/scimath/Functionals/Function.h>
34
#include <casacore/scimath/Functionals/FunctionFactoryErrors.h>
35
36
namespace
casacore
{
//# NAMESPACE CASACORE - BEGIN
37
38
//# Forward Declarations
39
class
Record;
40
41
// <summary>
42
// a class for creating Function objects from Records
43
// </summary>
44
45
// <use visibility=export>
46
47
// <reviewed reviewer="" date="yyyy/mm/dd" tests="" demos="">
48
// </reviewed>
49
50
// <prerequisite>
51
// <li> FunctionFactory
52
// </prerequisite>
53
//
54
// <etymology>
55
// This class is based on the Factory pattern, similar to the
56
// ApplicationObjectFactory
57
// </etymology>
58
//
59
// <synopsis>
60
//
61
//
62
//
63
//
64
// </synopsis>
65
//
66
// <example>
67
//
68
//
69
//
70
// </example>
71
//
72
// <motivation>
73
//
74
//
75
//
76
// </motivation>
77
//
78
// <thrown>
79
// </thrown>
80
//
81
// <todo asof="yyyy/mm/dd">
82
// </todo>
83
84
template
<
class
T>
85
class
FunctionFactory
86
{
87
public
:
88
FunctionFactory
() {}
89
FunctionFactory
(
const
FunctionFactory<T>
& factory) {}
90
virtual
~FunctionFactory
() {}
91
virtual
Function<T>
*
create
(
const
Record
& gr)
const
92
throw
(
FunctionFactoryError
) = 0;
93
FunctionFactory<T>
&
operator=
(
const
FunctionFactory<T>
& factory) {
94
return
*
this
;
95
}
96
};
97
98
99
}
//# NAMESPACE CASACORE - END
100
101
#endif
102
103
casacore::FunctionFactory::FunctionFactory
FunctionFactory(const FunctionFactory< T > &factory)
Definition:
AbstractFunctionFactory.h:89
casacore::FunctionFactory::~FunctionFactory
virtual ~FunctionFactory()
Definition:
AbstractFunctionFactory.h:90
casacore
this file contains all the compiler specific defines
Definition:
mainpage.dox:28
casacore::FunctionFactory::create
virtual Function< T > * create(const Record &gr) const =0
casacore::Function< T >
casacore::FunctionFactoryError
Definition:
FunctionFactoryErrors.h:37
casacore::FunctionFactory::FunctionFactory
FunctionFactory()
Definition:
AbstractFunctionFactory.h:88
casacore::Record
A hierarchical collection of named fields of various types.
Definition:
Record.h:180
casacore::FunctionFactory::operator=
FunctionFactory< T > & operator=(const FunctionFactory< T > &factory)
Definition:
AbstractFunctionFactory.h:93
casacore::FunctionFactory
a class for creating Function objects from Records
Definition:
AbstractFunctionFactory.h:85
Generated by
1.8.17