NRP Core  1.4.1
TransceiverFunction Class Reference

Holds a single transfer function decorator. More...

#include <transceiver_function.h>

Inheritance diagram for TransceiverFunction:
TransceiverDataPackInterface PtrTemplates< TransceiverFunction > PtrTemplates< TransceiverDataPackInterface > PreprocessingFunction

Public Member Functions

 TransceiverFunction (std::string linkedEngine, bool isPreprocessing)
 Constructor. More...
 
virtual ~TransceiverFunction () override=default
 
const std::string & linkedEngineName () const override
 Get name of engine this transceiver is linked to. More...
 
bool isPreprocessing () const override
 Indicates if this is a preprocessing function. More...
 
TransceiverDataPackInterface::shared_ptr pySetup (boost::python::object transceiverFunction)
 Decorator call() function. Takes the Transfer Function as a parameter. Moves this class into a shared_ptr. More...
 
boost::python::object runTf (boost::python::tuple &args, boost::python::dict &kwargs, datapacks_set_t dataPacks) override
 Execute the transfer function. More...
 
- Public Member Functions inherited from TransceiverDataPackInterface
 TransceiverDataPackInterface ()=default
 
virtual ~TransceiverDataPackInterface ()=default
 
template<class TRANSCEIVER_DATAPACK >
TransceiverDataPackInterface::shared_ptr pySetup (const TransceiverDataPackInterface::shared_ptr &tfDataPack)
 Decorator call() function. Takes the lower decorator as a parameter. Moves the given class into a shared_ptr, which will be managed by the next decorator. More...
 

Protected Member Functions

datapack_identifiers_set_t getRequestedDataPackIDs () const override
 Returns datapack IDs of this DataPack that should be requested from the engines. TODO: Make protected. More...
 
datapack_identifiers_set_t updateRequestedDataPackIDs (datapack_identifiers_set_t &&datapackIDs) const override
 Appends its own datapack requests onto datapackIDs. Uses getRequestedDataPackIDs to check which IDs are requested by this datapack. More...
 
- Protected Member Functions inherited from TransceiverDataPackInterface
template<class TRANSCEIVER_DATAPACK >
PtrTemplates< TRANSCEIVER_DATAPACK >::shared_ptr moveToSharedPtr ()
 

Additional Inherited Members

- Public Types inherited from PtrTemplates< TransceiverDataPackInterface >
using shared_ptr = std::shared_ptr< TransceiverDataPackInterface >
 
using const_shared_ptr = std::shared_ptr< const TransceiverDataPackInterface >
 
using unique_ptr = std::unique_ptr< TransceiverDataPackInterface >
 
using const_unique_ptr = std::unique_ptr< const TransceiverDataPackInterface >
 
- Public Types inherited from PtrTemplates< TransceiverFunction >
using shared_ptr = std::shared_ptr< TransceiverFunction >
 
using const_shared_ptr = std::shared_ptr< const TransceiverFunction >
 
using unique_ptr = std::unique_ptr< TransceiverFunction >
 
using const_unique_ptr = std::unique_ptr< const TransceiverFunction >
 
- Static Public Member Functions inherited from TransceiverDataPackInterface
static void setTFInterpreter (FunctionManager *interpreter)
 Set global TF Interpreter. All Transceiver Functions will register themselves with it upon creation. More...
 
static const FunctionManagergetFunctionManager ()
 
- Static Protected Attributes inherited from TransceiverDataPackInterface
static FunctionManager_functionManager = nullptr
 Pointer to TF Interpreter. Will be used to register a new TF function. More...
 

Detailed Description

Holds a single transfer function decorator.

Constructor & Destructor Documentation

◆ TransceiverFunction()

TransceiverFunction::TransceiverFunction ( std::string  linkedEngine,
bool  isPreprocessing 
)

Constructor.

Parameters
linkedEngineName of linked engine. This TF will only be called whenever Said engine finishes a timestep

◆ ~TransceiverFunction()

virtual TransceiverFunction::~TransceiverFunction ( )
overridevirtualdefault

Member Function Documentation

◆ getRequestedDataPackIDs()

datapack_identifiers_set_t TransceiverFunction::getRequestedDataPackIDs ( ) const
overrideprotectedvirtual

Returns datapack IDs of this DataPack that should be requested from the engines. TODO: Make protected.

Reimplemented from TransceiverDataPackInterface.

◆ isPreprocessing()

bool TransceiverFunction::isPreprocessing ( ) const
overridevirtual

Indicates if this is a preprocessing function.

Reimplemented from TransceiverDataPackInterface.

◆ linkedEngineName()

const std::string & TransceiverFunction::linkedEngineName ( ) const
overridevirtual

Get name of engine this transceiver is linked to.

Reimplemented from TransceiverDataPackInterface.

◆ pySetup()

TransceiverDataPackInterface::shared_ptr TransceiverFunction::pySetup ( boost::python::object  transceiverFunction)

Decorator call() function. Takes the Transfer Function as a parameter. Moves this class into a shared_ptr.

Parameters
transceiverFunctionUser defined TF
Returns
shared_ptr referencing data from this object

◆ runTf()

boost::python::object TransceiverFunction::runTf ( boost::python::tuple &  args,
boost::python::dict &  kwargs,
datapacks_set_t  dataPacks 
)
overridevirtual

Execute the transfer function.

Parameters
argsPython args
kwargsPython keywords
Returns
Returns result of TF

Reimplemented from TransceiverDataPackInterface.

◆ updateRequestedDataPackIDs()

datapack_identifiers_set_t TransceiverFunction::updateRequestedDataPackIDs ( datapack_identifiers_set_t &&  datapackIDs) const
overrideprotectedvirtual

Appends its own datapack requests onto datapackIDs. Uses getRequestedDataPackIDs to check which IDs are requested by this datapack.

Parameters
datapackIDsContainer with datapack IDs that gets expanded
Returns
Returns datapackIDs, with own datapackIDs appended

Reimplemented from TransceiverDataPackInterface.


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