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; }
124 Status status()
const;
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;
257 impl::InputNode* getInputNode(
const unsigned int id)
const;
258 impl::OutputNode* getOutputNode(
const unsigned int id)
const;
262 void observeInput(
const unsigned int id,
const DataContainer & oldData,
264 void observeOutput(
const unsigned int id,
const DataContainer & oldData,
268 InternalObserver* m_inputObserver;
269 InternalObserver* m_outputObserver;
270 impl::SynchronizedOperatorKernel* m_kernel;
271 std::map<unsigned int, impl::OutputNode*> m_outputs;
272 std::map<unsigned int, impl::InputNode*> m_inputs;
273 std::set<const ConnectorObserver*> m_observers;
275 impl::MutexHandle* m_observerMutex;
280 #endif // STROMX_RUNTIME_OPERATOR_H
const std::string & name() const
Definition: Operator.h:98
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
Definition: Operator.h:83
Factory of operator and data objects.
Definition: AbstractFactory.h:32
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:50
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
const Position & position() const
Definition: Operator.h:108
Abstract base class of observers of operator connectors.
Definition: ConnectorObserver.h:30