FunctionFactory.hpp
Go to the documentation of this file.
1 /***************************************************************************
2  tag: Peter Soetens Tue Dec 21 22:43:08 CET 2004 FunctionFactory.hpp
3 
4  FunctionFactory.hpp - description
5  -------------------
6  begin : Tue December 21 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 
39 #ifndef FUNCTIONFACTORY_HPP
40 #define FUNCTIONFACTORY_HPP
41 
42 #include "../ArgumentDescription.hpp"
43 #include "../OperationInterface.hpp"
44 #include "../Property.hpp"
45 #include "ProgramInterface.hpp"
46 
47 #include <map>
48 #include <string>
49 
50 namespace RTT
51 { namespace scripting {
52 
58  : public OperationInterfacePart
59  {
62 
64  const std::vector<base::DataSourceBase::shared_ptr>& args
65  , ExecutionEngine* caller, bool issend
66  ) const;
67  public:
69 
70  std::string resultType() const;
71 
72  unsigned int arity() const;
73 
74  unsigned int collectArity() const;
75 
76  const types::TypeInfo* getArgumentType(unsigned int arg) const;
77 
78  const types::TypeInfo* getCollectType(unsigned int arg) const;
79 
80  std::string getName() const;
81 
82  std::string description() const;
83 
84  std::vector< ArgumentDescription > getArgumentList() const;
85 
86  base::DataSourceBase::shared_ptr produce(const std::vector<base::DataSourceBase::shared_ptr>& args, ExecutionEngine* caller
87  ) const;
89  base::DataSourceBase::shared_ptr produceSend(const std::vector<base::DataSourceBase::shared_ptr>& args, ExecutionEngine* caller
90  ) const;
91  base::DataSourceBase::shared_ptr produceCollect(const std::vector<base::DataSourceBase::shared_ptr>& args, internal::DataSource<bool>::shared_ptr blocking
92  ) const;
93 
94 #ifdef ORO_SIGNALLING_OPERATIONS
95  Handle produceSignal(base::ActionInterface* func, const std::vector<base::DataSourceBase::shared_ptr>& args, ExecutionEngine* subscriber) const;
96 #endif
97  };
98 }}
99 
100 #endif
const types::TypeInfo * getCollectType(unsigned int arg) const
unsigned int collectArity() const
base::DataSourceBase::shared_ptr produceCollect(const std::vector< base::DataSourceBase::shared_ptr > &args, internal::DataSource< bool >::shared_ptr blocking) const
base::DataSourceBase::shared_ptr produceHelper(const std::vector< base::DataSourceBase::shared_ptr > &args, ExecutionEngine *caller, bool issend) const
boost::shared_ptr< ProgramInterface > ProgramInterfacePtr
const types::TypeInfo * getArgumentType(unsigned int arg) const
Based on the software pattern &#39;command&#39;, this interface allows execution of action objects...
base::DataSourceBase::shared_ptr produce(const std::vector< base::DataSourceBase::shared_ptr > &args, ExecutionEngine *caller) const
std::vector< ArgumentDescription > getArgumentList() const
boost::intrusive_ptr< DataSource< T > > shared_ptr
Definition: DataSource.hpp:115
base::DataSourceBase::shared_ptr produceSend(const std::vector< base::DataSourceBase::shared_ptr > &args, ExecutionEngine *caller) const
base::DataSourceBase::shared_ptr produceHandle() const
boost::intrusive_ptr< DataSourceBase > shared_ptr
Contains TaskContext, Activity, OperationCaller, Operation, Property, InputPort, OutputPort, Attribute.
Definition: Activity.cpp:53
The Handle holds the information, and allows manipulation, of a connection between a internal::Signal...
Definition: Handle.hpp:66
FunctionFactory(ProgramInterfacePtr func, ExecutionEngine *procs)


rtt
Author(s): RTT Developers
autogenerated on Fri Oct 25 2019 03:59:33