source: src/base/proxy.hpp@ a72216

Last change on this file since a72216 was a72216, checked in by Olaf Lenz <olenz@…>, 13 years ago

Fixed permissions.

git-svn-id: https://svn.version.fz-juelich.de/scafacos/trunk@2428 5161e1c8-67bf-11de-9fd5-51895aff932f

  • Property mode set to 100644
File size: 1.6 KB
Line 
1/*
2 * vmg - a versatile multigrid solver
3 * Copyright (C) 2012 Institute for Numerical Simulation, University of Bonn
4 *
5 * vmg is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * vmg is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19/**
20 * @file proxy.hpp
21 * @author Julian Iseringhausen <isering@ins.uni-bonn.de>
22 * @date Mon Apr 18 12:23:43 2011
23 *
24 * @brief Header file for the classes VMG::CommandProxyBase and
25 * VMG::CommandProxy, used register commands at the factory.
26 *
27 */
28
29#ifndef COMMAND_PROXY_HPP_
30#define COMMAND_PROXY_HPP_
31
32namespace VMG
33{
34
35class Command;
36
37class CommandProxyBase
38{
39public:
40 CommandProxyBase();
41 virtual Command* CreateCommand() const = 0;
42
43 virtual const char* Name() const = 0;
44 virtual int Arguments() const = 0;
45};
46
47template <class T>
48class CommandProxy : public CommandProxyBase
49{
50public:
51 Command* CreateCommand() const
52 {
53 return new T;
54 }
55
56 const char* Name() const
57 {
58 return T::Name();
59 }
60
61 int Arguments() const
62 {
63 return T::Arguments();
64 }
65};
66
67}
68
69#endif /* COMMAND_PROXY_HPP_ */
Note: See TracBrowser for help on using the repository browser.