.. _global: .. index:: pair: namespace; global Global Namespace ================ .. toctree:: :hidden: namespace_BulletLib.rst namespace_ConvertLib.rst namespace_FunctionalNodePolicies.rst namespace_InputNodePolicies.rst namespace_MujocoLib.rst namespace_NGraph.rst namespace_NRPThreads.rst namespace_NrpCoresProcess.rst namespace_OpenAIGymLib.rst namespace_OpensimLib.rst namespace_OutputNodePolicies.rst namespace_SimManager.rst namespace_Trainer.rst namespace_async_pysim_engine.rst namespace_async_python_grpc_engine.rst namespace_async_python_json_engine.rst namespace_boost.rst namespace_brain_devices.rst namespace_engine_script.rst namespace_gazebo.rst namespace_grpc_engine_script.rst namespace_grpc_server_callbacks.rst namespace_json_converter.rst namespace_json_event_loop_engine.rst namespace_json_utils.rst namespace_nlohmann.rst namespace_numpy_json_serializer.rst namespace_proto_field_ops.rst namespace_protobuf_event_loop_engine.rst namespace_protobuf_ops.rst namespace_python.rst namespace_python_grpc_engine.rst namespace_python_json_engine.rst namespace_server_callbacks.rst namespace_std.rst enum_DataPackPassingPolicy.rst struct_ComputationalGraphHandle.rst struct_DataPackIdentifier.rst struct_DataPackPointerComparator.rst struct_DataPortHandle.rst struct_EngineGRPCConfigConst.rst struct_EngineJSONConfigConst.rst struct_FixedString.rst struct_FunctionData.rst struct_GazeboGrpcConfigConst.rst struct_GazeboJSONConfigConst.rst struct_NestConfigConst.rst struct_NestServerConfigConst.rst struct_PySimConfigConst.rst struct_PythonConfigConst.rst struct_PythonGrpcConfigConst.rst struct_SimulationParams.rst struct_ZipSourceWrapper.rst struct_ZipWrapper.rst struct_dataConverter.rst struct_dataConverter-2.rst struct_dataConverter-3.rst struct_function_traits.rst struct_function_traits-2.rst struct_sub_tuple.rst struct_sub_tuple-2.rst struct_sub_tuple-3.rst struct_tuple_array.rst struct_tuple_array-2.rst class_BasicFork.rst class_CommControllerSingleton.rst class_ComputationalGraph.rst class_ComputationalGraphManager.rst class_ComputationalNode.rst class_CreateDataPackClass.rst class_DPInputMQTTEdge.rst class_DPInputMQTTNode.rst class_DPOutputMQTTEdge.rst class_DPOutputMQTTNode.rst class_DataPack.rst class_DataPackController.rst class_DataPackInterface.rst class_DataPackProcessor.rst class_DockerLauncher.rst class_ELEOptsParser.rst class_EmptyLaunchCommand.rst class_EngineClient.rst class_EngineClientInterface.rst class_EngineDataPack.rst class_EngineDataPacks.rst class_EngineGRPCOptsParser.rst class_EngineGrpcClient.rst class_EngineGrpcServer.rst class_EngineJSONNRPClient.rst class_EngineJSONOptsParser.rst class_EngineJSONRegistrationServer.rst class_EngineJSONServer.rst class_EngineLauncherInterface.rst class_EngineLauncherManager.rst class_EnginePluginManager.rst class_EngineProtoWrapper.rst class_EventLoop.rst class_EventLoopEngine.rst class_EventLoopInterface.rst class_EventLoopSimManager.rst class_F2FEdge.rst class_FTILoop.rst class_FTILoopSimManager.rst class_FileFinder.rst class_FunctionManager.rst class_FunctionalNode.rst class_FunctionalNode-2.rst class_FunctionalNodeBase.rst class_FunctionalNodeFactory.rst class_FunctionalNodeFactoryManager.rst class_GazeboEngineGrpcNRPClient.rst class_GazeboEngineJSONNRPClient.rst class_GazeboStepController.rst class_InputClockEdge.rst class_InputClockNode.rst class_InputDummy.rst class_InputDummyEdge.rst class_InputEdge.rst class_InputEngineEdge.rst class_InputEngineNode.rst class_InputIterationEdge.rst class_InputIterationNode.rst class_InputMQTTEdge.rst class_InputMQTTNode.rst class_InputNode.rst class_InputPort.rst class_InputROSEdge.rst class_InputROSNode.rst class_InputSpinnakerEdge.rst class_InputSpinnakerNode.rst class_InputTimeBaseNode.rst class_JsonDataPackController.rst class_LaunchCommand.rst class_LaunchCommandInterface.rst class_MQTTCallback.rst class_NRPException.rst class_NRPExceptionNonRecoverable.rst class_NRPExceptionRecoverable.rst class_NRPGazeboCommunicationController.rst class_NRPJSONCommunicationController.rst class_NRPLogger.rst class_NRPMQTTClient.rst class_NRPMQTTProxy.rst class_NRPROSProxy.rst class_NRPSpinnakerProxy.rst class_NestEngineJSONDataPackController.rst class_NestEngineJSONNRPClient.rst class_NestEngineServerNRPClient.rst class_NestJSONServer.rst class_NestKernelDataPackController.rst class_NrpCoreServer.rst class_OutputDummy.rst class_OutputDummyEdge.rst class_OutputEdge.rst class_OutputEngineEdge.rst class_OutputEngineNode.rst class_OutputMQTTEdge.rst class_OutputMQTTNode.rst class_OutputNode.rst class_OutputPort.rst class_OutputROSEdge.rst class_OutputROSNode.rst class_OutputSpinnakerEdge.rst class_OutputSpinnakerNode.rst class_PipeCommunication.rst class_PluginManager.rst class_Port.rst class_PreprocessedDataPack.rst class_PreprocessingFunction.rst class_ProcessLauncher.rst class_ProcessLauncherBasic.rst class_ProcessLauncherInterface.rst class_ProcessLauncherManager.rst class_ProtoOpsManager.rst class_PtrTemplates.rst class_PySimNRPClient.rst class_PythonEngineGRPCNRPClient.rst class_PythonEngineJSONNRPClient.rst class_PythonEngineJSONNRPClientBase.rst class_PythonFunctionalNode.rst class_PythonGILLock.rst class_PythonInterpreterState.rst class_RawData.rst class_RepeatedScalarFieldIterProxy.rst class_RepeatedScalarFieldProxy.rst class_RestClientSetup.rst class_SimulationDataManager.rst class_SimulationIterationDecorator.rst class_SimulationManager.rst class_SimulationTimeDecorator.rst class_SpiNNakerJsonReceiveCallbackInterface.rst class_StatusFunction.rst class_TFManagerHandle.rst class_TransceiverDataPackInterface.rst class_TransceiverFunction.rst class_WCharTConverter.rst class_ZipContainer.rst class_node_policies_ns.rst class_proto_python_bindings.rst Overview ~~~~~~~~ .. ref-code-block:: cpp :class: doxyrest-overview-code-block // namespaces namespace :ref:`BulletLib`; namespace :ref:`ConvertLib`; namespace :ref:`FunctionalNodePolicies`; namespace :ref:`InputNodePolicies`; namespace :ref:`MujocoLib`; namespace :ref:`NGraph`; namespace :ref:`NRPThreads`; namespace :ref:`NrpCoresProcess`; namespace :ref:`OpenAIGymLib`; namespace :ref:`OpensimLib`; namespace :ref:`OutputNodePolicies`; namespace :ref:`SimManager`; namespace :ref:`Trainer`; namespace :ref:`async_pysim_engine`; namespace :ref:`async_python_grpc_engine`; namespace :ref:`async_python_json_engine`; namespace :ref:`boost`; namespace :ref:`brain_devices`; namespace :ref:`engine_script`; namespace :ref:`gazebo`; namespace :ref:`grpc_engine_script`; namespace :ref:`grpc_server_callbacks`; namespace :ref:`json_converter`; namespace :ref:`json_event_loop_engine`; namespace :ref:`json_utils`; namespace :ref:`nlohmann`; namespace :ref:`numpy_json_serializer`; namespace :ref:`proto_field_ops`; namespace :ref:`protobuf_event_loop_engine`; namespace :ref:`protobuf_ops`; namespace :ref:`python`; namespace :ref:`python_grpc_engine`; namespace :ref:`python_json_engine`; namespace :ref:`server_callbacks`; namespace :ref:`std`; // typedefs typedef :ref:`DataPackController` :target:`ProtoDataPackController`; typedef :ref:`DataPack`<:ref:`nlohmann::json`> :target:`JsonDataPack`; typedef :ref:`RawData`<:ref:`nlohmann::json`> :target:`JsonRawData`; typedef nlohmann::json :target:`json`; typedef void() :target:`load_factory_fcn_t`; typedef :ref:`FunctionalNodeBase`*(const std::string&, const std::string&, :ref:`FunctionalNodePolicies::ExecutionPolicy`) :target:`create_fn_fcn_t`; typedef :ref:`InputEdge` :target:`SimpleInputEdge`; typedef :ref:`OutputEdge` :target:`SimpleOutputEdge`; typedef GazeboEngineGrpcNRPClient::EngineLauncher<:ref:`GazeboGrpcConfigConst::EngineType`> :target:`GazeboEngineGrpcLauncher`; typedef GazeboEngineJSONNRPClient::EngineLauncher<:ref:`GazeboJSONConfigConst::EngineType`> :target:`GazeboEngineJSONLauncher`; typedef :ref:`DataPackInterface::shared_ptr` :target:`DataPackInterfaceSharedPtr`; typedef :ref:`DataPackInterface::const_shared_ptr` :target:`DataPackInterfaceConstSharedPtr`; typedef std::set`>, :ref:`DataPackPointerComparator`> :target:`datapacks_set_t`; typedef std::vector`>> :target:`datapacks_vector_t`; typedef std::set<:ref:`DataPackIdentifier`> :target:`datapack_identifiers_set_t`; typedef :ref:`EngineClientInterface::shared_ptr` :target:`EngineClientInterfaceSharedPtr`; typedef :ref:`EngineClientInterface::const_shared_ptr` :target:`EngineClientInterfaceConstSharedPtr`; typedef :ref:`EngineLauncherInterface::shared_ptr` :target:`EngineLauncherInterfaceSharedPtr`; typedef :ref:`EngineLauncherInterface::const_shared_ptr` :target:`EngineLauncherInterfaceConstSharedPtr`; typedef :ref:`EngineLauncherManager::shared_ptr` :target:`EngineLauncherManagerSharedPtr`; typedef :ref:`EngineLauncherManager::const_shared_ptr` :target:`EngineLauncherManagerConstSharedPtr`; typedef :ref:`NRP_ENGINE_LAUNCH_FCN_T` :target:`engine_launch_fcn_t`; typedef :ref:`ProcessLauncherManager`<:ref:`ProcessLauncherBasic`> :ref:`MainProcessLauncherManager`; typedef :ref:`MainProcessLauncherManager::shared_ptr` :target:`MainProcessLauncherManagerSharedPtr`; typedef :ref:`MainProcessLauncherManager::const_shared_ptr` :target:`MainProcessLauncherManagerConstSharedPtr`; typedef std::shared_ptr<:ref:`FunctionManager`> :target:`FunctionManagerSharedPtr`; typedef std::shared_ptr`> :target:`FunctionManagerConstSharedPtr`; typedef std::shared_ptr<:ref:`FunctionManager`> :target:`TransceiverFunctionInterpreterSharedPtr`; typedef std::shared_ptr`> :target:`TransceiverFunctionInterpreterConstSharedPtr`; typedef :ref:`TransceiverDataPackInterface::shared_ptr` :target:`TransceiverDataPackInterfaceSharedPtr`; typedef :ref:`TransceiverDataPackInterface::const_shared_ptr` :target:`TransceiverDataPackInterfaceConstSharedPtr`; typedef std::shared_ptr<:ref:`nlohmann::json`> :target:`jsonSharedPtr`; typedef std::shared_ptr`> :target:`jsonConstSharedPtr`; typedef std::chrono::nanoseconds :target:`SimulationTime`; typedef NestEngineJSONNRPClient::EngineLauncher<:ref:`NestConfigConst::EngineType`> :target:`NestEngineJSONLauncher`; typedef NestEngineServerNRPClient::EngineLauncher<:ref:`NestServerConfigConst::EngineType`> :target:`NestEngineServerNRPClientLauncher`; typedef :ref:`protobuf_ops::NRPProtobufOpsIface`*() :target:`protobuf_ops_fcn_t`; typedef PySimNRPClient::EngineLauncher<:ref:`PySimConfigConst::EngineType`> :target:`PySimJSONLauncher`; typedef PythonEngineGRPCNRPClient::EngineLauncher<:ref:`PythonGrpcConfigConst::EngineType`> :target:`PythonEngineGRPCLauncher`; typedef PythonEngineJSONNRPClient::EngineLauncher<:ref:`PythonConfigConst::EngineType`> :target:`PythonEngineJSONLauncher`; typedef :ref:`FTILoop::shared_ptr` :target:`FTILoopSharedPtr`; typedef :ref:`FTILoop::const_shared_ptr` :target:`FTILoopConstSharedPtr`; typedef std::shared_ptr<:ref:`nlohmann::json`> :target:`jsonSharedPtr`; // enums enum :ref:`DataPackPassingPolicy`; // structs struct :ref:`ComputationalGraphHandle`; struct :ref:`DataPackIdentifier`; struct :ref:`DataPackPointerComparator`; template struct :ref:`DataPortHandle`; struct :ref:`EngineGRPCConfigConst`; struct :ref:`EngineJSONConfigConst`; template struct :ref:`FixedString`; struct :ref:`FunctionData`; struct :ref:`GazeboGrpcConfigConst`; struct :ref:`GazeboJSONConfigConst`; struct :ref:`NestConfigConst`; struct :ref:`NestServerConfigConst`; struct :ref:`PySimConfigConst`; struct :ref:`PythonConfigConst`; struct :ref:`PythonGrpcConfigConst`; struct :ref:`SimulationParams`; struct :ref:`ZipSourceWrapper`; struct :ref:`ZipWrapper`; template struct :ref:`dataConverter`; template struct :ref:`dataConverter`; template struct :ref:`dataConverter`; template struct :ref:`function_traits`; template struct :ref:`function_traits>`; template struct :ref:`sub_tuple`; template struct :ref:`sub_tuple, Tuple, IDX>`; template struct :ref:`sub_tuple, Tuple, IDX2>`; template struct :ref:`tuple_array`; template struct :ref:`tuple_array`; // classes class :ref:`BasicFork`; class :ref:`CommControllerSingleton`; class :ref:`ComputationalGraph`; class :ref:`ComputationalGraphManager`; class :ref:`ComputationalNode`; class :ref:`CreateDataPackClass`; template class :ref:`DPInputMQTTEdge`; template class :ref:`DPInputMQTTNode`; template class :ref:`DPOutputMQTTEdge`; template class :ref:`DPOutputMQTTNode`; template class :ref:`DataPack`; template class :ref:`DataPackController`; class :ref:`DataPackInterface`; class :ref:`DataPackProcessor`; class :ref:`DockerLauncher`; class :ref:`ELEOptsParser`; class :ref:`EmptyLaunchCommand`; template class :ref:`EngineClient`; class :ref:`EngineClientInterface`; class :ref:`EngineDataPack`; class :ref:`EngineDataPacks`; class :ref:`EngineGRPCOptsParser`; template class :ref:`EngineGrpcClient`; class :ref:`EngineGrpcServer`; template class :ref:`EngineJSONNRPClient`; class :ref:`EngineJSONOptsParser`; class :ref:`EngineJSONRegistrationServer`; class :ref:`EngineJSONServer`; class :ref:`EngineLauncherInterface`; class :ref:`EngineLauncherManager`; class :ref:`EnginePluginManager`; class :ref:`EngineProtoWrapper`; class :ref:`EventLoop`; class :ref:`EventLoopEngine`; class :ref:`EventLoopInterface`; class :ref:`EventLoopSimManager`; class :ref:`F2FEdge`; class :ref:`FTILoop`; class :ref:`FTILoopSimManager`; class :ref:`FileFinder`; class :ref:`FunctionManager`; template class :ref:`FunctionalNode, std::tuple>`; template class :ref:`FunctionalNode`; class :ref:`FunctionalNodeBase`; class :ref:`FunctionalNodeFactory`; class :ref:`FunctionalNodeFactoryManager`; class :ref:`GazeboEngineGrpcNRPClient`; class :ref:`GazeboEngineJSONNRPClient`; class :ref:`GazeboStepController`; class :ref:`InputClockEdge`; class :ref:`InputClockNode`; class :ref:`InputDummy`; class :ref:`InputDummyEdge`; template INPUT_CLASS> class :ref:`InputEdge`; class :ref:`InputEngineEdge`; class :ref:`InputEngineNode`; class :ref:`InputIterationEdge`; class :ref:`InputIterationNode`; template class :ref:`InputMQTTEdge`; template class :ref:`InputMQTTNode`; template class :ref:`InputNode`; template class :ref:`InputPort`; template class :ref:`InputROSEdge`; template class :ref:`InputROSNode`; class :ref:`InputSpinnakerEdge`; class :ref:`InputSpinnakerNode`; class :ref:`InputTimeBaseNode`; class :ref:`JsonDataPackController`; template class :ref:`LaunchCommand`; class :ref:`LaunchCommandInterface`; class :ref:`MQTTCallback`; class :ref:`NRPException`; class :ref:`NRPExceptionNonRecoverable`; class :ref:`NRPExceptionRecoverable`; class :ref:`NRPGazeboCommunicationController`; class :ref:`NRPJSONCommunicationController`; class :ref:`NRPLogger`; class :ref:`NRPMQTTClient`; class :ref:`NRPMQTTProxy`; class :ref:`NRPROSProxy`; class :ref:`NRPSpinnakerProxy`; class :ref:`NestEngineJSONDataPackController`; class :ref:`NestEngineJSONNRPClient`; class :ref:`NestEngineServerNRPClient`; class :ref:`NestJSONServer`; class :ref:`NestKernelDataPackController`; class :ref:`NrpCoreServer`; class :ref:`OutputDummy`; class :ref:`OutputDummyEdge`; template OUTPUT_CLASS> class :ref:`OutputEdge`; class :ref:`OutputEngineEdge`; class :ref:`OutputEngineNode`; template class :ref:`OutputMQTTEdge`; template class :ref:`OutputMQTTNode`; template class :ref:`OutputNode`; template class :ref:`OutputPort`; template class :ref:`OutputROSEdge`; template class :ref:`OutputROSNode`; class :ref:`OutputSpinnakerEdge`; class :ref:`OutputSpinnakerNode`; class :ref:`PipeCommunication`; class :ref:`PluginManager`; class :ref:`Port`; class :ref:`PreprocessedDataPack`; class :ref:`PreprocessingFunction`; template < class PROCESS_LAUNCHER, const char* LAUNCHER_TYPE, class ... LAUNCHER_COMMANDS > class :ref:`ProcessLauncher`; class :ref:`ProcessLauncherBasic`; class :ref:`ProcessLauncherInterface`; template class :ref:`ProcessLauncherManager`; class :ref:`ProtoOpsManager`; template class :ref:`PtrTemplates`; class :ref:`PySimNRPClient`; class :ref:`PythonEngineGRPCNRPClient`; class :ref:`PythonEngineJSONNRPClient`; template class :ref:`PythonEngineJSONNRPClientBase`; class :ref:`PythonFunctionalNode`; class :ref:`PythonGILLock`; class :ref:`PythonInterpreterState`; template class :ref:`RawData`; class :ref:`RepeatedScalarFieldIterProxy`; class :ref:`RepeatedScalarFieldProxy`; class :ref:`RestClientSetup`; class :ref:`SimulationDataManager`; class :ref:`SimulationIterationDecorator`; class :ref:`SimulationManager`; class :ref:`SimulationTimeDecorator`; class :ref:`SpiNNakerJsonReceiveCallbackInterface`; class :ref:`StatusFunction`; class :ref:`TFManagerHandle`; class :ref:`TransceiverDataPackInterface`; class :ref:`TransceiverFunction`; class :ref:`WCharTConverter`; class :ref:`ZipContainer`; class :ref:`node_policies_ns`; template class :ref:`proto_python_bindings`; // global variables const int :target:`QOS` = 1; const auto :target:`TIMEOUT` = std::chrono::seconds(10); concept :target:`INPUT_C` = std::is_base_of_v<:ref:`InputNode`, T>; concept :target:`OUTPUT_C` = std::is_base_of_v<:ref:`OutputNode`, T>; const char :target:`LAUNCH_COMMAND`[] = "BasicFork"; const char :target:`LAUNCH_DOCKER_COMMAND`[] = "DockerLauncher"; const char :ref:`EmptyLaunchC`[] = "EmptyLaunchCommand"; const char :ref:`Basic`[] = "Basic"; static :ref:`CreateDataPackClass`* :target:`pCreateDataPack` = nullptr; static :ref:`CreateDataPackClass`* :target:`pCreateDataPack` = nullptr; // global functions template bool :target:`operator ==` ( const std::set& A, const std::set& B ); template std::set :target:`operator *` ( const std::set& A, const std::set& B ); template std::set& :target:`operator +=` ( std::set& A, const std::set& B ); template std::set& :target:`operator -=` ( std::set& A, const std::set& B ); template std::set :ref:`operator +` ( const std::set& A, const std::set& B ); template std::set :ref:`operator -` ( const std::set& A, const std::set& B ); template std::set :ref:`symm_diff`( const std::set& A, const std::set& B ); template bool :ref:`includes_elm`( const std::set& A, constT& a ); template int :target:`intersection_size`( const std::set& A, const std::set& B ); template int :target:`big_small_intersection_size`( const std::set& A, const std::set& B ); template int :target:`union_size`(const std::set& A, const std::set& B); template int :target:`set_difference_size`( const std::set& A, const std::set& B ); void :target:`createPythonGraphFromConfig`( const :ref:`nlohmann::json`& config, const :ref:`ComputationalGraph::ExecMode`& execMode, const boost::python::dict& globalDict ); std::pair<:ref:`InputClockNode`*, :ref:`InputIterationNode`*> :target:`findTimeNodes`(); :target:`CREATE_NRP_ENGINE_LAUNCHER`(:ref:`GazeboEngineGrpcLauncher`); :target:`CREATE_NRP_ENGINE_LAUNCHER`(:ref:`GazeboEngineJSONLauncher`); std::shared_ptr<:ref:`DataPackIdentifier`> :target:`genDevID`( const std::string& name, const std::string& engineName ); std::shared_ptr<:ref:`DataPackInterface`> :target:`genDevInterface`( const std::string& name, const std::string& engineName ); :target:`BOOST_PYTHON_MODULE`(PYTHON_MODULE_NAME); boost::python::object :ref:`createFNFromFactoryModule`( const std::string& fnModuleName, const std::string& functionName, const std::string& nodeName, :ref:`FunctionalNodePolicies::ExecutionPolicy` policy ); :target:`BOOST_PYTHON_MODULE`(EVENT_LOOP_PYTHON_MODULE_NAME); static PyObject* :ref:`setPythonError`(PyObject* type, const std::string& message); static PyObject* :ref:`getItemFromJsonArray`( const :ref:`nlohmann::json`& jsonParent, PyObject* index ); static PyObject* :ref:`getItemFromJsonObject`( const :ref:`nlohmann::json`& jsonParent, PyObject* index ); static PyObject* :ref:`nlohmannJsonGetItem`( const :ref:`nlohmann::json`& jsonParent, PyObject* index ); static void :ref:`nlohmannJsonSetItem`( :ref:`nlohmann::json`* jsonParent, PyObject* index, PyObject* value ); static PyObject* :ref:`nlohmannJsonDump`(const :ref:`nlohmann::json`& json); static PyObject* :ref:`nlohmannJsonSize`(const :ref:`nlohmann::json`& json); static PyObject* :ref:`nlohmannJsonType`(const :ref:`nlohmann::json`& json); static PyObject* :ref:`nlohmannJsonKeys`(const :ref:`nlohmann::json`& json); static void :target:`nlohmannJsonAppend`(:ref:`nlohmann::json`* jsonParent, PyObject* value); :target:`BOOST_PYTHON_MODULE`(JSON_PYTHON_MODULE_NAME); std::string :ref:`parseAndValidateEngineConfig`(const std::string& configFile); :target:`BOOST_PYTHON_MODULE`(NRP_PYTHON_ENGINE_MODULE); std::string :ref:`parseAndValidateEngineConfig`(const std::string& configFile); :target:`BOOST_PYTHON_MODULE`(NRP_PYTHON_GRPC_ENGINE_MODULE); template :target:`FixedString`(const char(&) str[N]); template :target:`FixedString`(const :ref:`FixedString`& str); :target:`FixedString`(); template :target:`FixedString`(T str); std::string :ref:`handle_pyerror`(); std::string :ref:`handle_pyerror`(); void :target:`setup_venv`(); :ref:`SimulationTime` :ref:`toSimulationTimeFromSeconds`(double time); double :ref:`getRoundedRunTimeMs`( const :ref:`SimulationTime` runTime, const float simulationResolutionMs ); std::string :ref:`getTimestamp`(); template static :ref:`SimulationTime` :ref:`toSimulationTime`(vartype time); :ref:`SimulationTime` :ref:`toSimulationTimeFromSeconds`(double time); template static vartype :ref:`fromSimulationTime`(:ref:`SimulationTime` time); double :ref:`getRoundedRunTimeMs`( const :ref:`SimulationTime` runTime, const float simulationResolutionMs ); std::string :ref:`getTimestamp`(); int :ref:`bindOrFindFreePort`(std::string hostIpv4, int port = 0); void :ref:`bindToAddress`(std::string hostIpv4, int port); int :ref:`getFreePort`(std::string hostIpv4); void :ref:`appendPythonPath`(const std::string& path); int :target:`main`(int argc, char* argv[]); static void :target:`loadPlugins`( const char* libName, :ref:`EnginePluginManager`& pluginManager, const :ref:`EngineLauncherManagerSharedPtr`& engines, const std::set& engineTypes ); static void :target:`loadEngines`( :ref:`EnginePluginManager`& pluginManager, :ref:`EngineLauncherManagerSharedPtr`& engines, std::vector pluginsList, const std::set& engineTypes ); static int :target:`processLogOutputOption`( const std::string& logOutput, std::string logFilename, std::string logDir ); int :target:`main`(int argc, char* argv[]); :target:`CREATE_NRP_ENGINE_LAUNCHER`(:ref:`NestEngineJSONLauncher`); python::object :target:`CreateDataPack`(python::tuple args, python::dict kwargs); void :target:`RegisterDataPack`(python::str devName, python::object nodeCollection); python::dict :target:`GetDevMap`(); :target:`BOOST_PYTHON_MODULE`(NRP_NEST_PYTHON_MODULE); python::object :target:`CreateDataPack`(python::tuple args, python::dict kwargs); void :target:`RegisterDataPack`(python::str devName, python::object nodeCollection); python::dict :target:`GetDevMap`(); :target:`BOOST_PYTHON_MODULE`(NRP_NEST_PYTHON_MODULE); :target:`CREATE_NRP_ENGINE_LAUNCHER`(:ref:`NestEngineServerNRPClientLauncher`); Py_ssize_t :ref:`ExtractIndices`( PyObject* indices, Py_ssize_t& from, Py_ssize_t& to, Py_ssize_t& step, Py_ssize_t length ); Py_ssize_t :ref:`ExtractIndices`( PyObject* indices, Py_ssize_t& from, Py_ssize_t& to, Py_ssize_t& step, Py_ssize_t length ); :target:`CREATE_NRP_ENGINE_LAUNCHER`(:ref:`PySimJSONLauncher`); :target:`CREATE_NRP_ENGINE_LAUNCHER`(:ref:`PythonEngineGRPCLauncher`); :target:`CREATE_NRP_ENGINE_LAUNCHER`(:ref:`PythonEngineJSONLauncher`); static void :target:`resetIsUpdateFlags`(:ref:`datapacks_set_t`& dataPacks); static void :target:`updateDataPackPool`( :ref:`datapacks_vector_t` dataPacks, :ref:`datapacks_set_t`& pool ); static :ref:`DataPackProcessor`* :target:`makeHandleFromConfig`( :ref:`jsonSharedPtr` config, :ref:`SimulationDataManager`* simulationDataManager ); static void :target:`runLoopStepAsyncGet`(:ref:`EngineClientInterfaceSharedPtr` engine); // macros #define :ref:`CREATE_NRP_ENGINE_LAUNCHER`(engine_launcher_name) #define :target:`CREATE_NRP_ENGINE_LAUNCHER_FCN` #define :target:`CREATE_NRP_ENGINE_LAUNCHER_FCN_STR` #define :ref:`CREATE_PROTOBUF_OPS`(proto_ops_class) #define :target:`CREATE_PROTOBUF_OPS_FCN_STR` #define :target:`MQTT_BASE` #define :ref:`NPY_NO_DEPRECATED_API` #define :target:`NRP_ENGINE_LAUNCH_FCN_T` #define :ref:`NRP_LOGGER_TRACE`(...) #define :target:`SPDLOG_ACTIVE_LEVEL` #define :target:`VOLTAGE_INT_TO_S1615` #define :target:`use`(x) .. _details-global: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Typedefs -------- .. index:: pair: typedef; MainProcessLauncherManager .. _doxid-process__launcher__manager_8h_1ae6cafafb9f741f3540b40ee357399f6b: .. ref-code-block:: cpp :class: doxyrest-title-code-block typedef :ref:`ProcessLauncherManager`<:ref:`ProcessLauncherBasic`> MainProcessLauncherManager Type to manage all available process launchers. Global Variables ---------------- .. index:: pair: variable; EmptyLaunchC .. _doxid-empty__launch__command_8h_1a277c85656c662e54e4b6d3615df535a5: .. ref-code-block:: cpp :class: doxyrest-title-code-block const char EmptyLaunchC[] = "EmptyLaunchCommand" Empty Launch Command. A "dummy" launcher that doesn't launch a process. Useful in the cases when the EngineServer is not intended to be launched by the corresponding :ref:`EngineClient `. .. index:: pair: variable; Basic .. _doxid-process__launcher__basic_8h_1aa573f195aab0b34d13cde4599bbe0d57: .. ref-code-block:: cpp :class: doxyrest-title-code-block const char Basic[] = "Basic" Basic Process Launcher, for simple process management. Global Functions ---------------- .. index:: pair: function; operator+ .. _doxid-set__ops_8hpp_1abdba448c0bab02b62cec7d4f25aaf7df: .. ref-code-block:: cpp :class: doxyrest-title-code-block template std::set operator + ( const std::set& A, const std::set& B ) .. rubric:: Returns: a new set, the union of A and B. .. index:: pair: function; operator- .. _doxid-set__ops_8hpp_1a111c59c42c62d18814378652f441b02b: .. ref-code-block:: cpp :class: doxyrest-title-code-block template std::set operator - ( const std::set& A, const std::set& B ) .. rubric:: Returns: the A - B: elements in A but not in B. .. index:: pair: function; symm_diff .. _doxid-set__ops_8hpp_1a8662740216dc497cf997630ef350649c: .. ref-code-block:: cpp :class: doxyrest-title-code-block template std::set symm_diff( const std::set& A, const std::set& B ) .. rubric:: Returns: a new (possibly empty) set, the symmetric difference of A and B. That is, elements in only one set, but not the other. Mathematically, this is A+B - (A\*B) .. index:: pair: function; includes_elm .. _doxid-set__ops_8hpp_1ab146b3d0f166f924b1f6387b89997437: .. ref-code-block:: cpp :class: doxyrest-title-code-block template bool includes_elm( const std::set& A, constT& a ) .. rubric:: Returns: true, if element a is in set A .. index:: pair: function; createFNFromFactoryModule .. _doxid-nrp__event__loop_2python_2python__module_8cpp_1a48042ded83ffccb35754342d14a51d33: .. ref-code-block:: cpp :class: doxyrest-title-code-block boost::python::object createFNFromFactoryModule( const std::string& fnModuleName, const std::string& functionName, const std::string& nodeName, :ref:`FunctionalNodePolicies::ExecutionPolicy` policy ) Helper function for instantiating a C++ Functional Node from Python. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - fnModuleName - name of the module library which will be used to instantiate the node * - functionName - name of the C++ function which the node will run * - nodeName - name of the FN * - policy - exec policy of the FN .. rubric:: Returns: instantiated FN wrapped in a Python object .. index:: pair: function; setPythonError .. _doxid-nrp__engine__protocols_2nrp__json__engine__protocol_2python_2python__module_8cpp_1a339702e88564271b88687d73262b044e: .. ref-code-block:: cpp :class: doxyrest-title-code-block static PyObject* setPythonError(PyObject* type, const std::string& message) Generates python error with given type and message. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - type - Type of exception * - message - Message of the exception .. rubric:: Returns: Py_None object .. index:: pair: function; getItemFromJsonArray .. _doxid-nrp__engine__protocols_2nrp__json__engine__protocol_2python_2python__module_8cpp_1a1042b2ef8c7cf05005c724e770268504: .. ref-code-block:: cpp :class: doxyrest-title-code-block static PyObject* getItemFromJsonArray( const :ref:`nlohmann::json`& jsonParent, PyObject* index ) Returns element stored in json array under given index. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - json - The object of which the method was invoked * - index - Index to be accessed .. rubric:: Returns: Object stored under given index .. index:: pair: function; getItemFromJsonObject .. _doxid-nrp__engine__protocols_2nrp__json__engine__protocol_2python_2python__module_8cpp_1a6ab1e7a61b3b18445e9798bd508367de: .. ref-code-block:: cpp :class: doxyrest-title-code-block static PyObject* getItemFromJsonObject( const :ref:`nlohmann::json`& jsonParent, PyObject* index ) Returns element stored in json object under given key. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - json - The object of which the method was invoked * - index - Key to be accessed .. rubric:: Returns: Object stored under given key .. index:: pair: function; nlohmannJsonGetItem .. _doxid-nrp__engine__protocols_2nrp__json__engine__protocol_2python_2python__module_8cpp_1a1fcad1e928c585b2ae0dd1ed6860d321: .. ref-code-block:: cpp :class: doxyrest-title-code-block static PyObject* nlohmannJsonGetItem( const :ref:`nlohmann::json`& jsonParent, PyObject* index ) Implements python **getitem** method of nlohmann::json. The function is part of the python interface for nlohmann::json. It allows to access nlohmann::json objects using 'object[index]' notation. Both json arrays and objects cannot be accessed this way. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - json - The object of which the method was invoked * - index - Index (in case of arrays) or key (in case of objects) to be accessed .. rubric:: Returns: Object stored under given key or index .. index:: pair: function; nlohmannJsonSetItem .. _doxid-nrp__engine__protocols_2nrp__json__engine__protocol_2python_2python__module_8cpp_1a0fec4a6eccb3514a3bc3313e80b610cb: .. ref-code-block:: cpp :class: doxyrest-title-code-block static void nlohmannJsonSetItem( :ref:`nlohmann::json`* jsonParent, PyObject* index, PyObject* value ) Implements python **setitem** method of nlohmann::json. The function is part of the python interface for nlohmann::json. It allows to modify nlohmann::json objects using 'object[key] = value' notation. Json arrays cannot be modified this way. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - json - The object of which the method was invoked * - index - Key to be modified or created * - value - Value to be inserted under the key .. index:: pair: function; nlohmannJsonDump .. _doxid-nrp__engine__protocols_2nrp__json__engine__protocol_2python_2python__module_8cpp_1a85299d2ff2f2a3da0a5e5eb244326bd4: .. ref-code-block:: cpp :class: doxyrest-title-code-block static PyObject* nlohmannJsonDump(const :ref:`nlohmann::json`& json) Implements python **str** method of nlohmann::json. The function is part of the python interface for nlohmann::json. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - json - The object of which the method was invoked .. rubric:: Returns: String representation of the object .. index:: pair: function; nlohmannJsonSize .. _doxid-nrp__engine__protocols_2nrp__json__engine__protocol_2python_2python__module_8cpp_1a3814bbd3f65b176460b0fed214ade0c7: .. ref-code-block:: cpp :class: doxyrest-title-code-block static PyObject* nlohmannJsonSize(const :ref:`nlohmann::json`& json) Implements python **len** method of nlohmann::json. The function is part of the python interface for nlohmann::json. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - json - The object of which the method was invoked .. rubric:: Returns: Length of the object as long int .. index:: pair: function; nlohmannJsonType .. _doxid-nrp__engine__protocols_2nrp__json__engine__protocol_2python_2python__module_8cpp_1a58be983cafd9c11494af8de861d08c51: .. ref-code-block:: cpp :class: doxyrest-title-code-block static PyObject* nlohmannJsonType(const :ref:`nlohmann::json`& json) Returns the type of a json object as a string. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - json - The object of which the method was invoked .. rubric:: Returns: json type of the object .. index:: pair: function; nlohmannJsonKeys .. _doxid-nrp__engine__protocols_2nrp__json__engine__protocol_2python_2python__module_8cpp_1a0919db4c2ba59d9d243a4160b8f8d54d: .. ref-code-block:: cpp :class: doxyrest-title-code-block static PyObject* nlohmannJsonKeys(const :ref:`nlohmann::json`& json) Implements python keys method of nlohmann::json. The function is part of the python interface for nlohmann::json. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - json - The object of which the method was invoked .. rubric:: Returns: List of keys in case of json object, list of indices as strings in case of json array .. index:: pair: function; parseAndValidateEngineConfig .. _doxid-nrp__python__json__engine_2nrp__python__json__engine_2engine__server_2python__module_8cpp_1a44a05cf2fb321c687840b704521ff7d4: .. ref-code-block:: cpp :class: doxyrest-title-code-block std::string parseAndValidateEngineConfig(const std::string& configFile) Helper function for instantiating a :ref:`PythonEngineJSONNRPClient ` to validate a PythonEngine Engine configuration. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - config - engine configuration to be processed .. rubric:: Returns: validated config .. index:: pair: function; parseAndValidateEngineConfig .. _doxid-nrp__python__grpc__engine_2nrp__python__grpc__engine_2engine__server_2python__module_8cpp_1a44a05cf2fb321c687840b704521ff7d4: .. ref-code-block:: cpp :class: doxyrest-title-code-block std::string parseAndValidateEngineConfig(const std::string& configFile) Helper function for instantiating a :ref:`PythonEngineGRPCNRPClient ` to validate a PythonEngineGRPC Engine configuration. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - config - engine configuration to be processed .. rubric:: Returns: validated config .. index:: pair: function; handle_pyerror .. _doxid-python__error__handler_8cpp_1aebb4484a92922eeda9619138c81cb919: .. ref-code-block:: cpp :class: doxyrest-title-code-block std::string handle_pyerror() Read out a properly formatted Python exception string. Only call if a Python exception was thrown. .. rubric:: Returns: Returns human-readable error string .. index:: pair: function; handle_pyerror .. _doxid-python__error__handler_8h_1aebb4484a92922eeda9619138c81cb919: .. ref-code-block:: cpp :class: doxyrest-title-code-block std::string handle_pyerror() Read out a properly formatted Python exception string. Only call if a Python exception was thrown. .. rubric:: Returns: Returns human-readable error string .. index:: pair: function; toSimulationTimeFromSeconds .. _doxid-time__utils_8cpp_1aa169593657be4951694eef18fd2b2734: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`SimulationTime` toSimulationTimeFromSeconds(double time) Converts floating-point seconds into SimulationTime. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - time - The value to be converted .. rubric:: Returns: SimulationTime object that corresponds to the argument .. index:: pair: function; getRoundedRunTimeMs .. _doxid-time__utils_8cpp_1a9d0c24830e4fec08df3551fe7548a8bc: .. ref-code-block:: cpp :class: doxyrest-title-code-block double getRoundedRunTimeMs( const :ref:`SimulationTime` runTime, const float simulationResolutionMs ) Calculates simulation run time rounded to milliseconds, accounting for given resolution. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - runTime - Simulation run time that will be rounded * - simulationResolutionMs - Simulation resolution in milliseconds * - :ref:`NRPException ` - When simulation run time is smaller than simulation resolution .. rubric:: Returns: Rounded simulation run time .. index:: pair: function; getTimestamp .. _doxid-time__utils_8cpp_1a267ef521bc704496e86a915730403e7b: .. ref-code-block:: cpp :class: doxyrest-title-code-block std::string getTimestamp() returns the current local time as a string in the format: YYMMDD-hhmmss-pid, being pid the pid of the calling process .. index:: pair: function; toSimulationTime .. _doxid-time__utils_8h_1afef6027ed6e7d382275448cf1d0a9293: .. ref-code-block:: cpp :class: doxyrest-title-code-block template static :ref:`SimulationTime` toSimulationTime(vartype time) Converts given value to SimulationTime object. The function is parametrized with two parameters: vartype and ratio. Vartype is the type of variable that is supposed to be converted to SimulationTime. Usually this will be int or float. Ratio is std::ratio class. .. index:: pair: function; toSimulationTimeFromSeconds .. _doxid-time__utils_8h_1aa169593657be4951694eef18fd2b2734: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`SimulationTime` toSimulationTimeFromSeconds(double time) Converts floating-point seconds into SimulationTime. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - time - The value to be converted .. rubric:: Returns: SimulationTime object that corresponds to the argument .. index:: pair: function; fromSimulationTime .. _doxid-time__utils_8h_1a37992c16209fc710bd50d25e407c38f1: .. ref-code-block:: cpp :class: doxyrest-title-code-block template static vartype fromSimulationTime(:ref:`SimulationTime` time) Converts SimulationTime object to specified type and with given ratio. .. index:: pair: function; getRoundedRunTimeMs .. _doxid-time__utils_8h_1a9d0c24830e4fec08df3551fe7548a8bc: .. ref-code-block:: cpp :class: doxyrest-title-code-block double getRoundedRunTimeMs( const :ref:`SimulationTime` runTime, const float simulationResolutionMs ) Calculates simulation run time rounded to milliseconds, accounting for given resolution. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - runTime - Simulation run time that will be rounded * - simulationResolutionMs - Simulation resolution in milliseconds * - :ref:`NRPException ` - When simulation run time is smaller than simulation resolution .. rubric:: Returns: Rounded simulation run time .. index:: pair: function; getTimestamp .. _doxid-time__utils_8h_1a267ef521bc704496e86a915730403e7b: .. ref-code-block:: cpp :class: doxyrest-title-code-block std::string getTimestamp() returns the current local time as a string in the format: YYMMDD-hhmmss-pid, being pid the pid of the calling process .. index:: pair: function; bindOrFindFreePort .. _doxid-utils_8h_1a4c4e22f18f17d47dad26692f290d7fbc: .. ref-code-block:: cpp :class: doxyrest-title-code-block int bindOrFindFreePort(std::string hostIpv4, int port = 0) Attempts to bind to a given address. When "port" is 0, the function asks the OS to look for a free port number. Throws an exception if the connection is not successful .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - hostIpv4 - IP4 address of the host * - port - :ref:`Port ` to connect to, if 0 a free port is searched and used .. rubric:: Returns: :ref:`Port ` used in the connection, same as "port" argument or found free port .. index:: pair: function; bindToAddress .. _doxid-utils_8h_1aff8746fc178b8a99569a2ca318971cba: .. ref-code-block:: cpp :class: doxyrest-title-code-block void bindToAddress(std::string hostIpv4, int port) Attempts to bind to a given address. Throws an exception if the connection is not successful .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - hostIpv4 - IP4 address of the host * - port - :ref:`Port ` to connect to .. index:: pair: function; getFreePort .. _doxid-utils_8h_1af19c8fddadb56bdbf85a33117a317d05: .. ref-code-block:: cpp :class: doxyrest-title-code-block int getFreePort(std::string hostIpv4) Returns a free port number. Asks the OS to look for a free port number .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - hostIpv4 - IP4 address of the host .. rubric:: Returns: Free port number .. index:: pair: function; appendPythonPath .. _doxid-utils_8h_1aaeafb1b211dba67ef710bbf359cf34a6: .. ref-code-block:: cpp :class: doxyrest-title-code-block void appendPythonPath(const std::string& path) Appends 'path' to PYTHON_PATH env variable. .. index:: pair: function; ExtractIndices .. _doxid-repeated__field__proxy_8cpp_1a5d172eb5ab6752c4b6c715f7a537c1ea: .. ref-code-block:: cpp :class: doxyrest-title-code-block Py_ssize_t ExtractIndices( PyObject* indices, Py_ssize_t& from, Py_ssize_t& to, Py_ssize_t& step, Py_ssize_t length ) Function which processes an index or slice object and sets from, to and step appropriately. Returns the size of the described range, -1 if 'indices' is not a valid slice .. index:: pair: function; ExtractIndices .. _doxid-repeated__field__proxy_8h_1a5d172eb5ab6752c4b6c715f7a537c1ea: .. ref-code-block:: cpp :class: doxyrest-title-code-block Py_ssize_t ExtractIndices( PyObject* indices, Py_ssize_t& from, Py_ssize_t& to, Py_ssize_t& step, Py_ssize_t length ) Function which processes an index or slice object and sets from, to and step appropriately. Returns the size of the described range, -1 if 'indices' is not a valid slice Macros ------ .. index:: pair: define; CREATE_NRP_ENGINE_LAUNCHER .. _doxid-plugin_8h_1adcd291c2e449ed4d17ddfb6476b1d246: .. ref-code-block:: cpp :class: doxyrest-title-code-block #define CREATE_NRP_ENGINE_LAUNCHER(engine_launcher_name) Create a new engine launcher. Will be used to load a launcher out of a dynamically loaded library. .. index:: pair: define; CREATE_PROTOBUF_OPS .. _doxid-protobuf__ops_8h_1aa512c2cc68514357afc7f2f5d89a36b5: .. ref-code-block:: cpp :class: doxyrest-title-code-block #define CREATE_PROTOBUF_OPS(proto_ops_class) Create a Protobuf operations object. .. index:: pair: define; NPY_NO_DEPRECATED_API .. _doxid-json__converter_8cpp_1ab6e6ee86736f9ebb56e74ae21bf3ff8a: .. ref-code-block:: cpp :class: doxyrest-title-code-block #define NPY_NO_DEPRECATED_API Suppresses numpy warnings about deprecated API. .. index:: pair: define; NRP_LOGGER_TRACE .. _doxid-nrp__logger_8h_1a44d0ffe46e0db421ac193bb0eaa6e0f5: .. ref-code-block:: cpp :class: doxyrest-title-code-block #define NRP_LOGGER_TRACE(...) trace log macro. It is voided by defining \PRODUCTION_RELEASE