Compute Graph Framework SDK Reference  5.16
dw::framework::SimpleNodeT< T > Class Template Reference

Detailed Description

template<typename T>
class dw::framework::SimpleNodeT< T >

Definition at line 127 of file SimpleNodeT.hpp.

Inheritance diagram for dw::framework::SimpleNodeT< T >:
Collaboration diagram for dw::framework::SimpleNodeT< T >:

Public Types

using NodeT = T
 

Public Member Functions

dwStatus reset () override
 The default implementation calls SimpleNode::resetPorts. More...
 
virtual dwStatus setupImpl ()
 The default implementation calls SimpleNode::setup. More...
 
 SimpleNodeT ()
 Default constructor registering the setup and teardown passes. More...
 
 SimpleNodeT (NodeAllocationParams params)
 
virtual dwStatus teardownImpl ()
 The default implementation calls SimpleNode::teardown. More...
 
dwStatus validate () override
 Validate that all registered ports which have the flag binding-required are bound to a channel. More...
 
- Public Member Functions inherited from dw::framework::SimpleNode
dwStatus addToErrorSignal (uint32_t error, dwTime_t timestamp=0L) final
 
dwStatus addToHealthSignal (uint32_t error, dwTime_t timestamp=0L) override
 
dwStatus clearErrorSignal () override
 
dwStatus clearHealthSignal () override
 
dwStatus collectErrorSignals (dwGraphErrorSignal *&errorSignal, bool updateFromModule=true) override
 
dwStatus collectHealthSignals (dwGraphHealthSignal *&healthSignal, bool updateFromModule=false) override
 
dwStatus getInputChannel (const size_t portID, ChannelObject *&channel) const override
 Gets the input channel associated with the input port. More...
 
template<typename NodeT , size_t PortIndex>
ManagedPortInput< decltype(portType< NodeT, PortDirection::INPUT, PortIndex >())> & getInputPort ()
 Get a previously initialized non-array ManagedPortInput. More...
 
dwStatus getInputPort (const size_t portID, dw::framework::PortBase *&port) const override
 Gets the input port associated with the input port Id. More...
 
template<typename NodeT , size_t PortIndex>
ManagedPortInput< decltype(portType< NodeT, PortDirection::INPUT, PortIndex >())> & getInputPort (size_t arrayIndex)
 Get one specific ManagedPortInput from a previously initialized input array port. More...
 
uint32_t getIterationCount () const
 
dwStatus getModuleErrorSignal (dwErrorSignal &errorSignal) override
 
dwStatus getModuleHealthSignal (dwHealthSignal &healthSignal) override
 
dwStatus getName (const char **name) override
 
dwStatus getNodeErrorSignal (dwGraphErrorSignal &errorSignal) override
 
dwStatus getNodeHealthSignal (dwGraphHealthSignal &healthSignal) override
 
uint32_t getNodePeriod () const
 
dwStatus getOutputChannel (const size_t portID, ChannelObject *&channel) const override
 Gets the output channel associated with the output port. More...
 
template<typename NodeT , size_t PortIndex>
ManagedPortOutput< decltype(portType< NodeT, PortDirection::OUTPUT, PortIndex >())> & getOutputPort ()
 Get a previously initialized non-array ManagedPortOutput. More...
 
dwStatus getOutputPort (const size_t portID, dw::framework::PortBase *&port) const override
 Gets the output port associated with the output port Id. More...
 
template<typename NodeT , size_t PortIndex>
ManagedPortOutput< decltype(portType< NodeT, PortDirection::OUTPUT, PortIndex >())> & getOutputPort (size_t arrayIndex)
 Get one specific ManagedPortOutput from a previously initialized output array port. More...
 
dwStatus getPass (Pass **pass, size_t index) override
 
size_t getPassCount () const noexcept override
 
dwStatus getPasses (VectorFixed< Pass * > &passList) override
 
const dw::core::HeapHashMap< size_t, std::shared_ptr< ManagedPortInputBase > > & getRegisteredInputPorts () const
 
const dw::core::HeapHashMap< size_t, std::shared_ptr< ManagedPortOutputBase > > & getRegisteredOutputPorts () const
 
template<typename NodeT , size_t PortIndex, typename... Args>
void initInputArrayPort (size_t arrayIndex, Args &&... args)
 Initialize one ManagedPortInput of an array which will be owned by the base class and can be retrieved using getInputPort(size_t). More...
 
template<typename NodeT , size_t PortIndex, typename... Args>
void initInputArrayPorts (Args &&... args)
 Initialize an array of ManagedPortInput which will be owned by the base class and can be retrieved using getInputPort(size_t). More...
 
template<typename NodeT , size_t PortIndex, typename... Args>
void initInputPort (Args &&... args)
 Initialize a ManagedPortInput which will be owned by the base class and can be retrieved using getInputPort(). More...
 
template<typename NodeT , size_t PortIndex, typename... Args>
void initOutputArrayPort (size_t arrayIndex, Args &&... args)
 Initialize one ManagedPortOutput of an array which will be owned by the base class and can be retrieved using getOutputPort(size_t). More...
 
template<typename NodeT , size_t PortIndex, typename... Args>
void initOutputArrayPorts (Args &&... args)
 Initialize an array of ManagedPortOutput which will be owned by the base class and can be retrieved using getOutputPort(size_t). More...
 
template<typename NodeT , size_t PortIndex, typename... Args>
void initOutputPort (Args &&... args)
 Initialize a ManagedPortOutput which will be owned by the base class and can be retrieved using getOutputPort(). More...
 
template<typename Func >
void iterateManagedInputPorts (Func func)
 
template<typename Func >
void iterateManagedOutputPorts (Func func)
 
template<typename Func , typename PortList >
void iteratePorts (PortList &portList, Func func)
 
dwStatus reset () override
 
void resetPorts () override
 Default implementation to reset ports managed by the base class. More...
 
dwStatus run () override
 
dwStatus runPass (size_t passIndex) override
 
dwStatus setInputChannel (ChannelObject *channel, size_t portID) override
 Associate an input port with a channel instances. More...
 
dwStatus setIterationCount (uint32_t iterationCount) override
 
template<typename ModuleHandle_t >
dwStatus setModuleHandle (ModuleHandle_t handle, dwContextHandle_t context)
 
dwStatus setName (const char *name) final
 
dwStatus setNodePeriod (uint32_t period) override
 
virtual dwStatus setObjectHandle (dwModuleHandle_t handle)
 
dwStatus setOutputChannel (ChannelObject *channel, size_t portID) override
 Associate an output port with a channel instances. More...
 
dwStatus setState (const char *state) override
 
dwStatus setup ()
 Default implementation of the setup pass. More...
 
 SimpleNode (NodeAllocationParams params)
 Constructor which tailors the preallocated size of the internal collections for ports and passes to the need of the concrete node. More...
 
dwStatus teardown ()
 Default implementation of the teardown pass. More...
 
dwStatus updateCurrentErrorSignal (dwGraphErrorSignal &signal) override
 A function that allows user override to update error signal It is automatically called by dwFramework when getErrorSignal is called and when pass returns non-success return code. More...
 
dwStatus updateCurrentHealthSignal (dwGraphHealthSignal &signal) override
 A function that allows user override to update health signal It is automatically called by dwFramework during teardown and when pass returns non-success return code. More...
 
dwStatus updateHealthSignal (const dwGraphHealthSignal &signal)
 Adds the provided Health Signal to the Health Signal Array. If the array is full, the new signal will not be added. More...
 
dwStatus validate () override
 
dwStatus validate (const char *direction, const PortCollectionDescriptor &collection, dw::core::Function< bool(size_t)> isPortBound)
 Helper function used by dw::framework::SimpleNodeT::validate. More...
 
- Public Member Functions inherited from dw::framework::Node
virtual dwStatus addToErrorSignal (uint32_t error, dwTime_t timestamp=0L)=0
 A function the allows user to add an error to the error signal list. More...
 
virtual dwStatus addToHealthSignal (uint32_t error, dwTime_t timestamp=0L)=0
 A function the allows user to add an error to the health signal list. More...
 
virtual dwStatus clearErrorSignal ()=0
 Clear the error signal for this node. More...
 
virtual dwStatus clearHealthSignal ()=0
 Clear the health signal for this node. More...
 
virtual dwStatus collectErrorSignals (dwGraphErrorSignal *&errorSignal, bool updateFromModule=true)=0
 Collect error signals from node and module, combine and return the pointer to the error signal for this node. If combination of module and node signals exceeds max amount, will return up to max amount, node first, and DW_BUFFER_FULL. More...
 
virtual dwStatus collectHealthSignals (dwGraphHealthSignal *&healthSignal, bool updateFromModule=false)=0
 Collect health signals from node and module, combine and return the pointer to the health signal for this node. If combination of module and node signals exceeds max amount, will return up to max amount, node first, and DW_BUFFER_FULL. More...
 
virtual dwStatus getInputChannel (const size_t portID, ChannelObject *&channel) const =0
 Gets the input channel associated with the input port. More...
 
virtual dwStatus getInputPort (const size_t portID, dw::framework::PortBase *&port) const =0
 Gets the input port associated with the port id. More...
 
virtual dwStatus getModuleErrorSignal (dwErrorSignal &errorSignal)=0
 Get a copy of the error signals from the module that is a member of this node. More...
 
virtual dwStatus getModuleHealthSignal (dwHealthSignal &healthSignal)=0
 Return a copy of health signals from module that is a member of node. More...
 
virtual dwStatus getName (const char **name)=0
 Get the name of the node. More...
 
virtual dwStatus getNodeErrorSignal (dwGraphErrorSignal &errorSignal)=0
 Get a copy of the error signals for the node. More...
 
virtual dwStatus getNodeHealthSignal (dwGraphHealthSignal &healthSignal)=0
 Return a copy of graph health signals for the node. More...
 
virtual dwStatus getOutputChannel (const size_t portID, ChannelObject *&channel) const =0
 Gets the output channel associated with the output port. More...
 
virtual dwStatus getOutputPort (const size_t portID, dw::framework::PortBase *&port) const =0
 Gets the output port associated with the port id. More...
 
virtual dwStatus getPass (Pass **pass, size_t index)=0
 Get a const pointer to the pass at a specific index. More...
 
virtual size_t getPassCount () const noexcept=0
 Get number of passes in the node. More...
 
virtual dwStatus getPasses (VectorFixed< Pass * > &passList)=0
 Get all the passes in the node. More...
 
virtual dwStatus reset ()=0
 Resets the state of the node. More...
 
virtual void resetPorts ()=0
 Resets all the ports in the node. More...
 
virtual dwStatus run ()=0
 Runs all the passes in the node. More...
 
virtual dwStatus runPass (size_t passIndex)=0
 Run one pass by index as defined by the pass descriptors. More...
 
virtual dwStatus setInputChannel (ChannelObject *channel, size_t portID)=0
 Sets an input channel for this node with an accompanying port. More...
 
virtual dwStatus setIterationCount (uint32_t iterationCount)=0
 Sets the node's iteration count. More...
 
virtual dwStatus setName (const char *name)=0
 Set the name of the node. More...
 
virtual dwStatus setNodePeriod (uint32_t period)=0
 Set the node's period. More...
 
virtual dwStatus setOutputChannel (ChannelObject *channel, size_t portID)=0
 Sets an output channel for this node with an accompanying port. More...
 
virtual dwStatus setState (const char *state)=0
 Set the current state in node. Node implementation of this API need to be thread-safe. More...
 
virtual dwStatus updateCurrentErrorSignal (dwGraphErrorSignal &signal)=0
 A function that allows user override to update error signal It is automatically called by dwFramework when getErrorSignal is called and when pass returns non-success return code. More...
 
virtual dwStatus updateCurrentHealthSignal (dwGraphHealthSignal &signal)=0
 A function that allows user override to update health signal It is automatically called by dwFramework during teardown and when pass returns non-success return code. More...
 
virtual dwStatus validate ()=0
 Checks that all mandatory ports are bound. The implementation should validate that all the ports are bound to the appropriate channels (any required ports, that is). For example, a camera node may have processed output and raw output ports, but only one is required to be bound. More...
 
virtual ~Node ()=default
 

Additional Inherited Members

- Static Public Attributes inherited from dw::framework::Node
static constexpr const size_t MAX_NAME_LEN {128U}
 
- Protected Member Functions inherited from dw::framework::SimpleNode
dwGraphHealthSignalgetHealthSignal ()
 
dwStatus getModuleHandle (dwModuleHandle_t *moduleHandle, void *handle, dwContextHandle_t context)
 
template<typename NodeT , size_t PassIndex, typename PassFunctionT >
void registerPass (PassFunctionT func, cudaStream_t const cudaStream, std::initializer_list< std::pair< dwStatus, uint32_t > > const &returnMapping={})
 Register a GPU pass function and a cuda stream with the node base class. More...
 
template<typename NodeT , size_t PassIndex, typename PassFunctionT >
void registerPass (PassFunctionT func, std::initializer_list< std::pair< dwStatus, uint32_t > > const &returnMapping={})
 Register a pass function with the node base class. More...
 
- Protected Attributes inherited from dw::framework::SimpleNode
std::atomic< bool > m_asyncResetFlag
 
dw::core::HeapHashMap< size_t, std::shared_ptr< ManagedPortInputBase > > m_inputPorts
 
dw::core::HeapHashMap< size_t, std::shared_ptr< ManagedPortOutputBase > > m_outputPorts
 

Member Typedef Documentation

◆ NodeT

template<typename T >
using dw::framework::SimpleNodeT< T >::NodeT = T

Definition at line 131 of file SimpleNodeT.hpp.

Constructor & Destructor Documentation

◆ SimpleNodeT() [1/2]

template<typename T >
dw::framework::SimpleNodeT< T >::SimpleNodeT ( )
inline

Default constructor registering the setup and teardown passes.

Definition at line 134 of file SimpleNodeT.hpp.

◆ SimpleNodeT() [2/2]

template<typename T >
dw::framework::SimpleNodeT< T >::SimpleNodeT ( NodeAllocationParams  params)
inline

Definition at line 140 of file SimpleNodeT.hpp.

Member Function Documentation

◆ reset()

template<typename T >
dwStatus dw::framework::SimpleNodeT< T >::reset ( )
inlineoverridevirtual

The default implementation calls SimpleNode::resetPorts.

Reimplemented from dw::framework::SimpleNode.

Definition at line 159 of file SimpleNodeT.hpp.

References dw::framework::SimpleNode::resetPorts().

◆ setupImpl()

template<typename T >
virtual dwStatus dw::framework::SimpleNodeT< T >::setupImpl ( )
inlinevirtual

The default implementation calls SimpleNode::setup.

Definition at line 147 of file SimpleNodeT.hpp.

References dw::framework::SimpleNode::setup().

◆ teardownImpl()

template<typename T >
virtual dwStatus dw::framework::SimpleNodeT< T >::teardownImpl ( )
inlinevirtual

The default implementation calls SimpleNode::teardown.

Definition at line 153 of file SimpleNodeT.hpp.

References dw::framework::SimpleNode::teardown().

◆ validate()

template<typename T >
dwStatus dw::framework::SimpleNodeT< T >::validate ( )
inlineoverridevirtual

Validate that all registered ports which have the flag binding-required are bound to a channel.

Reimplemented from dw::framework::SimpleNode.

Definition at line 166 of file SimpleNodeT.hpp.

References dw::framework::PortCollectionDescriptor::getPortSize(), dw::framework::SimpleNode::getRegisteredInputPorts(), dw::framework::SimpleNode::getRegisteredOutputPorts(), and dw::framework::SimpleNode::validate().


The documentation for this class was generated from the following file: