Definition at line 76 of file SimpleNode.hpp.
Public Member Functions | |
void | addPass (Pass *pass) |
dwStatus | clearErrorSignal () override |
dwStatus | clearHealthSignal () override |
dwStatus | copyModuleHealthSignals (dwHealthSignal &outSignal) |
Copy health signals from the module over to the node and stores in outSignal. More... | |
dwStatus | getErrorSignal (dwGraphErrorSignal &sehErrorSignal, dwGraphErrorSignal *&errorSignal, uint16_t const sourceId, char8_t const *instanceName=nullptr) override |
dwStatus | getHealthSignal (dwGraphHealthSignal *&healthSignals, bool updateFromModule=false) override |
dwStatus | getInputChannel (const uint8_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 uint8_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 | getName (const char **name) override |
uint32_t | getNodePeriod () const |
dwStatus | getOutputChannel (const uint8_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 uint8_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, uint8_t index) override |
size_t | getPassCount () const noexcept override |
dwStatus | getPasses (VectorFixed< Pass * > &passList) override |
dwStatus | getPasses (VectorFixed< Pass * > &passList, dwProcessorType processorType) 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 (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 (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) |
template<typename TPort , typename... Args> | |
std::unique_ptr< TPort > | make_port (Args &&... args) |
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 *, uint8_t, dwSerializationType) override |
dwStatus | setInputChannel (ChannelObject *channel, uint8_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, uint8_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 () | |
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... | |
virtual | ~SimpleNode () |
![]() | |
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 | getErrorSignal (dwGraphErrorSignal &sehErrorSignal, dwGraphErrorSignal *&errorSignal, uint16_t const sourceId, char8_t const *instanceName=nullptr)=0 |
Get the pointer to the error signal for this node. More... | |
virtual dwStatus | getHealthSignal (dwGraphHealthSignal *&healthSignals, bool updateFromModule=false)=0 |
Get the pointer to the health signal for this node. More... | |
virtual dwStatus | getInputChannel (const uint8_t portID, ChannelObject *&channel) const =0 |
Gets the input channel associated with the input port. More... | |
virtual dwStatus | getInputPort (const uint8_t portID, dw::framework::PortBase *&port) const =0 |
Gets the input port associated with the port id. More... | |
virtual dwStatus | getName (const char **name)=0 |
Get the name of the node. More... | |
virtual dwStatus | getOutputChannel (const uint8_t portID, ChannelObject *&channel) const =0 |
Gets the output channel associated with the output port. More... | |
virtual dwStatus | getOutputPort (const uint8_t portID, dw::framework::PortBase *&port) const =0 |
Gets the output port associated with the port id. More... | |
virtual dwStatus | getPass (Pass **pass, uint8_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 | getPasses (VectorFixed< Pass * > &passList, dwProcessorType processorType)=0 |
Get node passes filtered by processor type and process type. 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, uint8_t portID)=0 |
Sets an input channel for this node with an accompanying port. More... | |
virtual dwStatus | setInputChannel (ChannelObject *channel, uint8_t portID, dwSerializationType dataType)=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, uint8_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 |
Protected Member Functions | |
virtual std::unique_ptr< Pass > | createSetupPass () |
virtual std::unique_ptr< Pass > | createTeardownPass () |
dwStatus | getModuleHandle (dwModuleHandle_t *moduleHandle, void *handle, dwContextHandle_t context) |
template<typename PassFunctionT , typename... Args> | |
std::unique_ptr< PassImpl< PassFunctionT > > | make_pass (PassFunctionT func, Args &&... args) |
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 | |
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 |
Additional Inherited Members | |
![]() | |
using | Name_t = FixedString< MAX_NAME_LEN > |
![]() | |
static constexpr const size_t | MAX_NAME_LEN {128U} |
static constexpr const uint32_t | MAX_PASS_COUNT {256U} |
static constexpr const uint32_t | MAX_PORT_COUNT {256U} |
dw::framework::SimpleNode::SimpleNode | ( | ) |
dw::framework::SimpleNode::SimpleNode | ( | NodeAllocationParams | params | ) |
Constructor which tailors the preallocated size of the internal collections for ports and passes to the need of the concrete node.
|
virtual |
void dw::framework::SimpleNode::addPass | ( | Pass * | pass | ) |
Register a pass function with the node base class.
|
overridevirtual |
Implements dw::framework::Node.
|
overridevirtual |
Implements dw::framework::Node.
dwStatus dw::framework::SimpleNode::copyModuleHealthSignals | ( | dwHealthSignal & | outSignal | ) |
Copy health signals from the module over to the node and stores in outSignal.
[out] | outSignal | the output module signal |
|
inlineprotectedvirtual |
Reimplemented in dw::framework::SimpleNodeT< T >.
Definition at line 207 of file SimpleNode.hpp.
|
inlineprotectedvirtual |
Reimplemented in dw::framework::SimpleNodeT< T >.
Definition at line 212 of file SimpleNode.hpp.
|
overridevirtual |
Implements dw::framework::Node.
|
overridevirtual |
Implements dw::framework::Node.
|
overridevirtual |
Gets the input channel associated with the input port.
Implements dw::framework::Node.
|
inline |
Get a previously initialized non-array ManagedPortInput.
Definition at line 444 of file SimpleNode.hpp.
References dw::framework::descriptorPortArray().
|
overridevirtual |
Gets the input port associated with the input port Id.
Implements dw::framework::Node.
|
inline |
Get one specific ManagedPortInput from a previously initialized input array port.
Definition at line 467 of file SimpleNode.hpp.
uint32_t dw::framework::SimpleNode::getIterationCount | ( | ) | const |
|
protected |
|
overridevirtual |
Implements dw::framework::Node.
uint32_t dw::framework::SimpleNode::getNodePeriod | ( | ) | const |
|
overridevirtual |
Gets the output channel associated with the output port.
Implements dw::framework::Node.
|
inline |
Get a previously initialized non-array ManagedPortOutput.
Definition at line 494 of file SimpleNode.hpp.
References dw::framework::descriptorPortArray().
|
overridevirtual |
Gets the output port associated with the output port Id.
Implements dw::framework::Node.
|
inline |
Get one specific ManagedPortOutput from a previously initialized output array port.
Definition at line 517 of file SimpleNode.hpp.
|
overridevirtual |
Implements dw::framework::Node.
|
overridevirtualnoexcept |
Implements dw::framework::Node.
|
overridevirtual |
Implements dw::framework::Node.
|
overridevirtual |
Implements dw::framework::Node.
|
inline |
Definition at line 575 of file SimpleNode.hpp.
Referenced by dw::framework::SimpleNodeT< T >::validate().
|
inline |
Definition at line 580 of file SimpleNode.hpp.
Referenced by dw::framework::SimpleNodeT< T >::validate().
|
inline |
Initialize an array of ManagedPortInput which will be owned by the base class and can be retrieved using getInputPort(size_t).
The macro NODE_INIT_INPUT_ARRAY_PORT can be used for convenience to hide the template parameters of this method.
Definition at line 384 of file SimpleNode.hpp.
|
inline |
Initialize a ManagedPortInput which will be owned by the base class and can be retrieved using getInputPort().
The macro NODE_INIT_INPUT_PORT can be used for convenience to hide the template parameters of this method.
Definition at line 367 of file SimpleNode.hpp.
|
inline |
Initialize an array of ManagedPortOutput which will be owned by the base class and can be retrieved using getOutputPort(size_t).
The macro NODE_INIT_OUTPUT_ARRAY_PORT can be used for convenience to hide the template parameters of this method.
Definition at line 423 of file SimpleNode.hpp.
|
inline |
Initialize a ManagedPortOutput which will be owned by the base class and can be retrieved using getOutputPort().
The macro NODE_INIT_OUTPUT_PORT can be used for convenience to hide the template parameters of this method.
Definition at line 406 of file SimpleNode.hpp.
|
inline |
Definition at line 150 of file SimpleNode.hpp.
References iteratePorts(), and m_inputPorts.
|
inline |
Definition at line 164 of file SimpleNode.hpp.
|
inline |
Definition at line 141 of file SimpleNode.hpp.
Referenced by iterateManagedInputPorts().
|
inlineprotected |
Simple helper to create a pass with any function implementing operator()
Example: class MyNode : public Node { MyNode() { const int32_t someArg = 1;
auto pass1 = make_pass([someArg, this]() { return myPassWithArgs(someArg); }, ...); auto pass2 = make_pass([this]() { return myPassNoArgs(); }, ...); }
private: dwStatus myPassWithArgs(int32_t a); dwStatus myPassNoArgs(); }
Definition at line 240 of file SimpleNode.hpp.
|
inline |
Definition at line 355 of file SimpleNode.hpp.
|
inlineprotected |
Register a GPU pass function and a cuda stream with the node base class.
The macro NODE_REGISTER_PASS can be used for convenience to hide the template parameters of this method.
Definition at line 287 of file SimpleNode.hpp.
|
inlineprotected |
Register a pass function with the node base class.
The macro NODE_REGISTER_PASS can be used for convenience to hide the template parameters of this method.
Note that the processorType DLA_0 and DLA_1 will be replaced by DLA when STM support cuDLA and dw deprecated them Issue tracked in AVCGF-569
Definition at line 254 of file SimpleNode.hpp.
|
inlineoverridevirtual |
Implements dw::framework::Node.
Reimplemented in dw::framework::SimpleNodeT< T >.
Definition at line 84 of file SimpleNode.hpp.
|
overridevirtual |
Default implementation to reset ports managed by the base class.
Call ManagedPortInput::reset on all input ports. This method is used by SimpleNodeT::reset.
Implements dw::framework::Node.
Referenced by dw::framework::SimpleNodeT< T >::reset().
|
overridevirtual |
Implements dw::framework::Node.
|
overridevirtual |
Implements dw::framework::Node.
|
inlineoverridevirtual |
Implements dw::framework::Node.
Definition at line 95 of file SimpleNode.hpp.
|
overridevirtual |
Associate an input port with a channel instances.
A concrete node shouldn't need to override this method if all input ports are initialized in the constructor using the macros like NODE_INIT_INPUT_PORT.
Implements dw::framework::Node.
|
overridevirtual |
Sets the node's iteration count. The value set can be retrieved with getIterationCount.
Implements dw::framework::Node.
|
inline |
Definition at line 178 of file SimpleNode.hpp.
|
finalvirtual |
Implements dw::framework::Node.
|
overridevirtual |
Sets the node's period The value set can be retrieved with getNodePeriod.
Implements dw::framework::Node.
|
virtual |
|
overridevirtual |
Associate an output port with a channel instances.
A concrete node shouldn't need to override this method if all output ports are initialized in the constructor using the macros like NODE_INIT_OUTPUT_PORT.
Implements dw::framework::Node.
|
inlineoverridevirtual |
Set the current state. Override setState to handle state changes
Implements dw::framework::Node.
Definition at line 591 of file SimpleNode.hpp.
dwStatus dw::framework::SimpleNode::setup | ( | ) |
Default implementation of the setup pass.
Check that all ports which are bound to a channel have a buffer available. This method is used by SimpleNodeT::setupImpl.
Referenced by dw::framework::SimpleNodeT< T >::setupImpl().
dwStatus dw::framework::SimpleNode::teardown | ( | ) |
Default implementation of the teardown pass.
Call ManagedPortInput::release on all input ports. This method is used by SimpleNodeT::teardownImpl.
Referenced by dw::framework::SimpleNodeT< T >::teardownImpl().
|
overridevirtual |
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.
[in,out] | signal | that the node owner modifies to store current health. It is pre-filled with the latest module health signal |
Implements dw::framework::Node.
|
overridevirtual |
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.
[in,out] | signal | that the node owner modifies to store current health. It is pre-filled with the latest module health signal |
Implements dw::framework::Node.
dwStatus dw::framework::SimpleNode::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.
[in] | signal | The Health Signal to add |
|
inlineoverridevirtual |
Implements dw::framework::Node.
Reimplemented in dw::framework::SimpleNodeT< T >.
Definition at line 112 of file SimpleNode.hpp.
Referenced by dw::framework::SimpleNodeT< T >::validate().
dwStatus dw::framework::SimpleNode::validate | ( | const char * | direction, |
const PortCollectionDescriptor & | collection, | ||
dw::core::Function< bool(size_t)> | isPortBound | ||
) |
Helper function used by dw::framework::SimpleNodeT::validate.
A concrete node shouldn't need to override or call this method.
|
protected |
Definition at line 601 of file SimpleNode.hpp.
|
protected |
Definition at line 598 of file SimpleNode.hpp.
Referenced by iterateManagedInputPorts().
|
protected |
Definition at line 599 of file SimpleNode.hpp.