NRP Core  1.4.1
ComputationalGraphHandle Struct Reference

Uses a Computation Graph to execute datapack transformation operations. More...

#include <computational_graph_handle.h>

Inheritance diagram for ComputationalGraphHandle:
DataPackProcessor

Public Member Functions

 ComputationalGraphHandle (SimulationDataManager *simulationDataManager, bool slaveMode=false, bool spinROS=false)
 
void init (const jsonSharedPtr &simConfig, const engine_interfaces_t &engines) override
 Initializes the handler. More...
 
void updateDataPacksFromEngines (const std::vector< EngineClientInterfaceSharedPtr > &engines) override
 Request datapacks from engines. More...
 
void compute (const std::vector< EngineClientInterfaceSharedPtr > &engines) override
 Perform computations on datapacks. More...
 
void sendDataPacksToEngines (const std::vector< EngineClientInterfaceSharedPtr > &engines) override
 Send datapacks to engines. More...
 
- Public Member Functions inherited from DataPackProcessor
 DataPackProcessor ()=delete
 
 DataPackProcessor (SimulationDataManager *simulationDataManager)
 
virtual ~DataPackProcessor ()=default
 
virtual void postEngineInit (const std::vector< EngineClientInterfaceSharedPtr > &)
 Performs post-engine-initialization DataPack operations. More...
 
virtual void preEngineReset (const std::vector< EngineClientInterfaceSharedPtr > &)
 Performs pre-engine-reset DataPack operations. More...
 
virtual void postEngineReset (const std::vector< EngineClientInterfaceSharedPtr > &)
 Performs post-engine-reset DataPack operations. More...
 
void datapackCycle (const std::vector< EngineClientInterfaceSharedPtr > &engines)
 Execute sequentially the update, compute and send operations. More...
 
void setSimulationTime (SimulationTime simulationTime)
 
void setSimulationIteration (unsigned long simulationIteration)
 

Public Attributes

bool _slaveMode
 
bool _spinROS
 
PyGILState_STATE _pyGILState
 
std::map< std::string, InputEngineNode * > _inputs
 Map containing all InputEngineNodes associated with this simulation. More...
 
std::map< std::string, OutputEngineNode * > _outputs
 Map containing all OutputEngineNodes associated with this simulation. More...
 
InputClockNode_clock = nullptr
 Pointer to the clock_node of the graph. More...
 
InputIterationNode_iteration = nullptr
 Pointer to the iteration_node of the graph. More...
 

Additional Inherited Members

- Public Types inherited from DataPackProcessor
using engine_interfaces_t = std::vector< EngineClientInterfaceSharedPtr >
 
- Protected Attributes inherited from DataPackProcessor
SimulationDataManager_simulationDataManager
 
SimulationTime _simulationTime = SimulationTime::zero()
 
unsigned long _simulationIteration = 0L
 

Detailed Description

Uses a Computation Graph to execute datapack transformation operations.

Constructor & Destructor Documentation

◆ ComputationalGraphHandle()

ComputationalGraphHandle::ComputationalGraphHandle ( SimulationDataManager simulationDataManager,
bool  slaveMode = false,
bool  spinROS = false 
)
inline

Member Function Documentation

◆ compute()

void ComputationalGraphHandle::compute ( const std::vector< EngineClientInterfaceSharedPtr > &  engines)
inlineoverridevirtual

Perform computations on datapacks.

Parameters
enginesEngines that are been synchronize in the current loop

Implements DataPackProcessor.

◆ init()

void ComputationalGraphHandle::init ( const jsonSharedPtr simConfig,
const engine_interfaces_t engines 
)
inlineoverridevirtual

Initializes the handler.

Parameters
simConfigjson object containing configuration information to initialize the handler
engineslist of Engine clients participating in the simulation

Implements DataPackProcessor.

◆ sendDataPacksToEngines()

void ComputationalGraphHandle::sendDataPacksToEngines ( const std::vector< EngineClientInterfaceSharedPtr > &  engines)
inlineoverridevirtual

Send datapacks to engines.

Parameters
enginesEngines that are been synchronize in the current loop

Implements DataPackProcessor.

◆ updateDataPacksFromEngines()

void ComputationalGraphHandle::updateDataPacksFromEngines ( const std::vector< EngineClientInterfaceSharedPtr > &  engines)
inlineoverridevirtual

Request datapacks from engines.

Parameters
enginesEngines that are been synchronize in the current loop

Implements DataPackProcessor.

Member Data Documentation

◆ _clock

InputClockNode* ComputationalGraphHandle::_clock = nullptr

Pointer to the clock_node of the graph.

◆ _inputs

std::map<std::string, InputEngineNode*> ComputationalGraphHandle::_inputs

Map containing all InputEngineNodes associated with this simulation.

◆ _iteration

InputIterationNode* ComputationalGraphHandle::_iteration = nullptr

Pointer to the iteration_node of the graph.

◆ _outputs

std::map<std::string, OutputEngineNode*> ComputationalGraphHandle::_outputs

Map containing all OutputEngineNodes associated with this simulation.

◆ _pyGILState

PyGILState_STATE ComputationalGraphHandle::_pyGILState

◆ _slaveMode

bool ComputationalGraphHandle::_slaveMode

◆ _spinROS

bool ComputationalGraphHandle::_spinROS

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