17 #ifndef STROMX_RUNTIME_OPERATOR_H 18 #define STROMX_RUNTIME_OPERATOR_H 23 #include "stromx/runtime/ConnectorObserver.h" 24 #include "stromx/runtime/DataContainer.h" 25 #include "stromx/runtime/DataRef.h" 26 #include "stromx/runtime/Exception.h" 27 #include "stromx/runtime/OperatorInfo.h" 28 #include "stromx/runtime/Position.h" 34 class AbstractFactory;
45 class SynchronizedOperatorKernel;
62 friend class FactoryTest;
63 friend class OperatorTest;
64 friend class InputNodeTest;
65 friend class NetworkTest;
67 friend class OutputNodeTest;
68 friend class ThreadImplTest;
69 friend class SendReceiveTest;
72 friend class impl::Network;
98 const std::string &
name()
const {
return m_name; }
105 void setName(
const std::string & name) { m_name = name; }
136 void setParameter(
const unsigned int id,
const Data& value);
154 void setParameter(
const unsigned int id,
const Data& value,
const unsigned int timeout);
167 DataRef getParameter(
const unsigned int id)
const;
183 DataRef getParameter(
const unsigned int id,
const unsigned int timeout)
const;
196 const DataContainer getOutputData(
const unsigned int id)
const;
205 void setInputData(
const unsigned int id,
const DataContainer & data);
212 void clearOutputData(
const unsigned int id);
251 class InternalObserver;
259 impl::InputNode* getInputNode(
const unsigned int id)
const;
260 impl::OutputNode* getOutputNode(
const unsigned int id)
const;
264 void observeInput(
const unsigned int id,
const DataContainer & oldData,
266 void observeOutput(
const unsigned int id,
const DataContainer & oldData,
270 InternalObserver* m_inputObserver;
271 InternalObserver* m_outputObserver;
272 impl::SynchronizedOperatorKernel* m_kernel;
273 std::map<unsigned int, impl::OutputNode*> m_outputs;
274 std::map<unsigned int, impl::InputNode*> m_inputs;
275 std::set<const ConnectorObserver*> m_observers;
277 impl::MutexHandle* m_observerMutex;
282 #endif // STROMX_RUNTIME_OPERATOR_H Abstract data object.
Definition: Data.h:53
Reference to a data object.
Definition: DataRef.h:48
Container which manages the life-cycle of data objects.
Definition: DataContainer.h:43
Operator with utility functions for unit testing.
Definition: OperatorTester.h:27
void setName(const std::string &name)
Definition: Operator.h:105
const std::string & name() const
Definition: Operator.h:98
Definition: Operator.h:83
const Position & position() const
Definition: Operator.h:108
Type
Definition: Description.h:73
Factory of operator and data objects.
Definition: AbstractFactory.h:32
UpdateBehavior
Definition: Description.h:86
The stromx class library.
Definition: AdjustRgbChannels.cpp:29
Definition: Operator.h:79
The core data processing pipeline of stromx.
Definition: Stream.h:45
2D position.
Definition: Position.h:26
Meta-information about an operator.
Definition: OperatorInfo.h:51
Abstract operator.
Definition: Operator.h:60
A thread which visits input nodes.
Definition: Thread.h:53
Abstract operator kernel.
Definition: OperatorKernel.h:46
Status
Definition: Operator.h:76
Definition: Operator.h:81
void setPosition(const Position &position)
Definition: Operator.h:115
Abstract base class of observers of operator connectors.
Definition: ConnectorObserver.h:30