Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
rtt
types
Operators.hpp
Go to the documentation of this file.
1
/***************************************************************************
2
tag: Peter Soetens Mon Jan 19 14:11:25 CET 2004 Operators.hpp
3
4
Operators.hpp - description
5
-------------------
6
begin : Mon January 19 2004
7
copyright : (C) 2004 Peter Soetens
8
email : peter.soetens@mech.kuleuven.ac.be
9
10
***************************************************************************
11
* This library is free software; you can redistribute it and/or *
12
* modify it under the terms of the GNU General Public *
13
* License as published by the Free Software Foundation; *
14
* version 2 of the License. *
15
* *
16
* As a special exception, you may use this file as part of a free *
17
* software library without restriction. Specifically, if other files *
18
* instantiate templates or use macros or inline functions from this *
19
* file, or you compile this file and link it with other files to *
20
* produce an executable, this file does not by itself cause the *
21
* resulting executable to be covered by the GNU General Public *
22
* License. This exception does not however invalidate any other *
23
* reasons why the executable file might be covered by the GNU General *
24
* Public License. *
25
* *
26
* This library is distributed in the hope that it will be useful, *
27
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
28
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
29
* Lesser General Public License for more details. *
30
* *
31
* You should have received a copy of the GNU General Public *
32
* License along with this library; if not, write to the Free Software *
33
* Foundation, Inc., 59 Temple Place, *
34
* Suite 330, Boston, MA 02111-1307 USA *
35
* *
36
***************************************************************************/
37
38
#ifndef ORO_OPERATORS_HPP
39
#define ORO_OPERATORS_HPP
40
41
#include <string>
42
#include <vector>
43
#include "../internal/DataSource.hpp"
44
#include <boost/shared_ptr.hpp>
45
46
namespace
RTT
{
namespace
types
47
{
48
65
class
RTT_API
UnaryOp
66
{
67
public
:
68
virtual
~
UnaryOp
();
76
virtual
base::DataSourceBase
* build(
const
std::string& op,
77
base::DataSourceBase
* a ) = 0;
78
};
79
80
class
RTT_API
BinaryOp
81
{
82
public
:
83
virtual
~
BinaryOp
();
92
virtual
base::DataSourceBase
* build(
93
const
std::string& op,
base::DataSourceBase
* a,
base::DataSourceBase
* b ) = 0;
94
99
virtual
bool
isExactMatch(
const
std::string& op,
base::DataSourceBase
* a,
100
base::DataSourceBase
* b ) = 0;
101
};
102
107
class
RTT_API
OperatorRepository
108
{
109
std::vector<UnaryOp*>
unaryops
;
110
std::vector<BinaryOp*>
binaryops
;
111
OperatorRepository
();
112
OperatorRepository
(
const
OperatorRepository
& );
113
114
public
:
115
void
add(
UnaryOp
* o );
116
void
add(
BinaryOp
* o );
117
118
typedef
boost::shared_ptr<OperatorRepository>
shared_ptr
;
119
~
OperatorRepository
();
123
static
shared_ptr Instance();
124
base::DataSourceBase
* applyUnary(
const
std::string& op,
base::DataSourceBase
* a );
125
base::DataSourceBase
* applyBinary(
126
const
std::string& op,
base::DataSourceBase
* a,
base::DataSourceBase
* b );
127
};
128
133
RTT_API
OperatorRepository::shared_ptr
operators
();
134
}}
135
136
#endif
RTT::types::UnaryOp
Definition:
Operators.hpp:65
RTT::base::DataSourceBase
The base class for all internal data representations.
Definition:
DataSourceBase.hpp:76
RTT::types::operators
RTT_API OperatorRepository::shared_ptr operators()
Definition:
Operators.cpp:132
RTT::types::OperatorRepository::shared_ptr
boost::shared_ptr< OperatorRepository > shared_ptr
Definition:
Operators.hpp:118
RTT::types::OperatorRepository
Definition:
Operators.hpp:107
RTT::types::OperatorRepository::binaryops
std::vector< BinaryOp * > binaryops
Definition:
Operators.hpp:110
RTT::types::BinaryOp
Definition:
Operators.hpp:80
RTT::types::OperatorRepository::unaryops
std::vector< UnaryOp * > unaryops
Definition:
Operators.hpp:109
RTT
Contains TaskContext, Activity, OperationCaller, Operation, Property, InputPort, OutputPort, Attribute.
Definition:
Activity.cpp:53
rtt
Author(s): RTT Developers
autogenerated on Fri Oct 25 2019 03:59:34