casacore
scimath
Functionals
SpecificFunctionFactory.h
Go to the documentation of this file.
1
//# SpecificFunctionFactory.h: a class for creating a Function object 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_SPECIFICFUNCTIONFACTORY_H
30
#define SCIMATH_SPECIFICFUNCTIONFACTORY_H
31
32
#include <casacore/casa/aips.h>
33
#include <casacore/scimath/Functionals/Function.h>
34
#include <casacore/scimath/Functionals/AbstractFunctionFactory.h>
35
36
namespace
casacore
{
//# NAMESPACE CASACORE - BEGIN
37
38
//# Forward Declarations
39
class
Record;
40
41
// <summary>
42
//
43
//
44
//
45
//
46
//
47
// </summary>
48
49
// <use visibility=export>
50
51
// <reviewed reviewer="" date="yyyy/mm/dd" tests="" demos="">
52
// </reviewed>
53
54
// <prerequisite>
55
// <li> FunctionFactory
56
// </prerequisite>
57
//
58
// <etymology>
59
// This class is based on the Factory pattern, similar to the
60
// ApplicationObjectFactory
61
// </etymology>
62
//
63
// <synopsis>
64
//
65
//
66
//
67
//
68
// </synopsis>
69
//
70
// <example>
71
//
72
//
73
//
74
// </example>
75
//
76
// <motivation>
77
//
78
//
79
//
80
// </motivation>
81
//
82
// <templating arg=T>
83
// <li> F class must be a subclass of Function<T>
84
// <li> F class must have a constructor for the form F(const Record&)
85
// </templating>
86
//
87
// <thrown>
88
// <li>
89
// <li>
90
// </thrown>
91
//
92
// <todo asof="yyyy/mm/dd">
93
// <li>
94
// <li>
95
// <li>
96
// </todo>
97
template
<
class
T,
class
F>
98
class
SpecificFunctionFactory
:
public
FunctionFactory
<T>
99
{
100
public
:
101
SpecificFunctionFactory
() {}
102
SpecificFunctionFactory
(
const
SpecificFunctionFactory<T,F>
& factory) {}
103
virtual
~SpecificFunctionFactory
() {}
104
virtual
Function<T>
*
create
(
const
Record
& gr)
const
105
throw
(
FunctionFactoryError
)
106
{
107
return
new
F(gr);
108
}
109
SpecificFunctionFactory<T,F>
&
110
operator=
(
const
SpecificFunctionFactory<T,F>
& factory)
111
{
112
return
*
this
;
113
}
114
};
115
116
117
}
//# NAMESPACE CASACORE - END
118
119
#endif
120
121
casacore::SpecificFunctionFactory::SpecificFunctionFactory
SpecificFunctionFactory(const SpecificFunctionFactory< T, F > &factory)
Definition:
SpecificFunctionFactory.h:102
casacore::SpecificFunctionFactory::create
virtual Function< T > * create(const Record &gr) const
Definition:
SpecificFunctionFactory.h:104
casacore::SpecificFunctionFactory::SpecificFunctionFactory
SpecificFunctionFactory()
Definition:
SpecificFunctionFactory.h:101
casacore::SpecificFunctionFactory::~SpecificFunctionFactory
virtual ~SpecificFunctionFactory()
Definition:
SpecificFunctionFactory.h:103
casacore::SpecificFunctionFactory::operator=
SpecificFunctionFactory< T, F > & operator=(const SpecificFunctionFactory< T, F > &factory)
Definition:
SpecificFunctionFactory.h:110
casacore
this file contains all the compiler specific defines
Definition:
mainpage.dox:28
casacore::Function< T >
casacore::FunctionFactoryError
Definition:
FunctionFactoryErrors.h:37
casacore::Record
Definition:
Record.h:181
casacore::SpecificFunctionFactory
Definition:
SpecificFunctionFactory.h:99
casacore::FunctionFactory
Definition:
AbstractFunctionFactory.h:86
Generated by
1.8.20