17 #ifndef STROMX_RUNTIME_OPERATORKERNEL_H 18 #define STROMX_RUNTIME_OPERATORKERNEL_H 22 #include "stromx/runtime/DataRef.h" 23 #include "stromx/runtime/Exception.h" 24 #include "stromx/runtime/OperatorInfo.h" 35 class SynchronizedOperatorKernel;
48 friend class impl::SynchronizedOperatorKernel;
49 friend class OperatorKernelTest;
61 const std::string&
type()
const {
return m_type; }
63 const std::string&
package()
const {
return m_package; }
67 const std::vector<const Input*>&
inputs()
const {
return m_visibleInputs; }
69 const std::vector<const Output*>&
outputs()
const {
return m_visibleOutputs; }
71 const std::vector<const Parameter*>&
parameters()
const {
return m_visibleParameters; }
73 const Parameter & parameter(
const unsigned int id)
const;
75 const Input & input(
const unsigned int id)
const;
77 const Output & output(
const unsigned int id)
const;
79 const Description & description(
const unsigned int id)
const;
99 virtual void initialize();
105 virtual void deinitialize();
142 const std::string & package,
144 const std::vector<const Parameter*>& parameters,
169 const std::string & package,
171 const std::vector<const Input*>& inputs,
172 const std::vector<const Output*>& outputs,
173 const std::vector<const Parameter*>& parameters,
190 const std::string& package,
192 const std::vector<const Input* >& inputs,
193 const std::vector<const Output* >& outputs,
202 const std::string & package,
225 virtual void initialize(
const std::vector<const Input*>& inputs,
226 const std::vector<const Output*>& outputs,
227 const std::vector<const Parameter*>& parameters);
232 Parameter & parameter(
const unsigned int id);
235 void validateDescriptions(
const std::vector<const Input*>& inputs,
236 const std::vector<const Output*>& outputs,
237 const std::vector<const Parameter*>& parameters);
238 void setupDefaultTypeMap();
239 void updateVisibleDescriptions(
const bool isInitialized);
240 const Parameter & findParameter(
const unsigned int id)
const;
241 const Description* findDescription(
const unsigned int id)
const;
246 std::string m_package;
248 std::vector<const Input*> m_inputs;
249 std::vector<const Output*> m_outputs;
250 std::vector<const Parameter*> m_parameters;
252 std::vector<const Input*> m_visibleInputs;
253 std::vector<const Output*> m_visibleOutputs;
254 std::vector<const Parameter*> m_visibleParameters;
256 std::map<unsigned int, const Parameter*> m_parameterMap;
257 std::map<unsigned int, const Input*> m_inputMap;
258 std::map<unsigned int, const Output*> m_outputMap;
261 std::map<unsigned int, Description::Type> m_typeMap;
262 std::map<unsigned int, Description::UpdateBehavior> m_behaviorMap;
267 std::set<unsigned int> m_activeInputs;
268 std::set<unsigned int> m_activeOutputs;
269 std::set<unsigned int> m_activeParameters;
276 #endif // STROMX_RUNTIME_OPERATORKERNEL_H Abstract description of an ID to variant map.
Definition: Description.h:69
A version of an operator or data type.
Definition: Version.h:46
Abstract data object.
Definition: Data.h:53
Reference to a data object.
Definition: DataRef.h:48
virtual void activate()
Definition: OperatorKernel.h:111
virtual const DataRef getParameter(const unsigned int) const
Definition: OperatorKernel.h:87
Type
Definition: Description.h:73
virtual void setParameter(const unsigned int, const Data &)
Definition: OperatorKernel.h:84
Description of an input.
Definition: Output.h:28
Version version()
Returns the version of the stromx runtime library.
Definition: Runtime.cpp:54
UpdateBehavior
Definition: Description.h:86
The stromx class library.
Definition: AdjustRgbChannels.cpp:29
A function which is not implemented was called.
Definition: Exception.h:192
virtual void deactivate()
Definition: OperatorKernel.h:117
const std::string & package() const
Definition: OperatorKernel.h:63
const std::vector< const Output * > & outputs() const
Definition: OperatorKernel.h:69
const std::string & type() const
Definition: OperatorKernel.h:61
Meta-information about an operator.
Definition: OperatorInfo.h:51
Description of a parameter.
Definition: Parameter.h:34
Abstract operator kernel.
Definition: OperatorKernel.h:46
Provider of functions to receive and send data.
Definition: DataProvider.h:35
const std::vector< const Input * > & inputs() const
Definition: OperatorKernel.h:67
Definition: OperatorInfo.h:30
const std::vector< const Parameter * > & parameters() const
Definition: OperatorKernel.h:71
const Version & version() const
Definition: OperatorKernel.h:65
virtual void interrupt()
Definition: OperatorKernel.h:125
Definition: Description.h:99