43 #include "../extras/MultiVector.hpp" 45 #include "../Logger.hpp" 46 #include <boost/type_traits.hpp> 47 #include <boost/shared_ptr.hpp> 49 #include "../internal/mystd.hpp" 51 #include "../rtt-config.h" 55 using namespace detail;
58 boost::shared_ptr<OperatorRepository> reg;
72 OperatorRepository::OperatorRepository()
78 unaryops.push_back( a );
83 binaryops.push_back( b );
88 delete_all( unaryops.begin(), unaryops.end() );
89 delete_all( binaryops.begin(), binaryops.end() );
95 typedef std::vector<UnaryOp*> vec;
96 typedef vec::iterator iter;
97 for ( iter i = unaryops.begin(); i != unaryops.end(); ++i )
100 if ( ret )
return ret;
108 typedef std::vector<BinaryOp*> vec;
109 typedef vec::iterator iter;
111 for ( iter i = binaryops.begin(); i != binaryops.end(); ++i )
113 if ( (*i)->isExactMatch( op, a, b) )
114 return (*i)->build( op, a, b );
116 for ( iter i = binaryops.begin(); i != binaryops.end(); ++i )
119 if ( ret )
return ret;
UnaryOperator contains information on some unary operator that operates on one arg of a certain type...
base::DataSourceBase * applyUnary(const std::string &op, base::DataSourceBase *a)
The base class for all internal data representations.
static shared_ptr Instance()
Returns a shared pointer to the singleton of this class.
RTT_API OperatorRepository::shared_ptr operators()
This global function provides the short notation for OperatorRepository::Instance() ...
boost::shared_ptr< OperatorRepository > shared_ptr
This class builds on upon construction all expression operators known to Orocos.
Contains TaskContext, Activity, OperationCaller, Operation, Property, InputPort, OutputPort, Attribute.
This file contains operator information objects, These objects contain information on how to apply on...
base::DataSourceBase * applyBinary(const std::string &op, base::DataSourceBase *a, base::DataSourceBase *b)