.. index:: pair: class; EngineGrpcServer .. _doxid-class_engine_grpc_server: class EngineGrpcServer ====================== .. toctree:: :hidden: Overview ~~~~~~~~ Abstract class for Engine server with gRPC support. :ref:`More...` .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include class EngineGrpcServer: public Service { public: // typedefs typedef std::timed_mutex :target:`mutex_t`; typedef std::unique_lock<:ref:`EngineGrpcServer::mutex_t`> :target:`lock_t`; // construction :ref:`EngineGrpcServer`(); :ref:`EngineGrpcServer`( const std::string serverAddress, const std::string& engineName, const std::string& protobufPluginsPath, const :ref:`nlohmann::json`& protobufPlugins ); // methods void :ref:`startServer`(); void :ref:`startServerAsync`(); void :ref:`shutdownServer`(); bool :ref:`isServerRunning`() const; const std::string :ref:`serverAddress`() const; void :ref:`registerDataPack`( const std::string& datapackName, :ref:`ProtoDataPackController`* interface ); void :target:`registerDataPackNoLock`( const std::string& datapackName, :ref:`ProtoDataPackController`* interface ); unsigned :target:`getNumRegisteredDataPacks`(); const std::string& :ref:`getEngineName`(); }; // direct descendants class :ref:`NRPGRPCCommunicationController`; .. _details-class_engine_grpc_server: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Abstract class for Engine server with gRPC support. The class provides a base for implementing an Engine server with gRPC as middleware. All RPC services are implemented. Derived classes are responsible for implementing simulation initialization, shutdown and run step methods. Construction ------------ .. index:: pair: function; EngineGrpcServer .. _doxid-class_engine_grpc_server_1ae07803d3e81edf3ad2670317d96ee8a0: .. ref-code-block:: cpp :class: doxyrest-title-code-block EngineGrpcServer() No dummy servers, only those with name and url. .. index:: pair: function; EngineGrpcServer .. _doxid-class_engine_grpc_server_1a1933730bc2f7e2d84cc07910b7c38246: .. ref-code-block:: cpp :class: doxyrest-title-code-block EngineGrpcServer( const std::string serverAddress, const std::string& engineName, const std::string& protobufPluginsPath, const :ref:`nlohmann::json`& protobufPlugins ) Constructor. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - serverAddress - Address of the gRPC server * - engineName - Name of the simulation engine Methods ------- .. index:: pair: function; startServer .. _doxid-class_engine_grpc_server_1a578b6d98acd6e1b102a131a6b09ce1bd: .. ref-code-block:: cpp :class: doxyrest-title-code-block void startServer() Starts the gRPC server in synchronous mode. .. index:: pair: function; startServerAsync .. _doxid-class_engine_grpc_server_1a873debfc6573e9b5d343bf9fff970d0b: .. ref-code-block:: cpp :class: doxyrest-title-code-block void startServerAsync() Starts the gRPC server in asynchronous mode. .. index:: pair: function; shutdownServer .. _doxid-class_engine_grpc_server_1ae5bef34e951ed424c5ad52d10babfcc0: .. ref-code-block:: cpp :class: doxyrest-title-code-block void shutdownServer() Shutdowns the gRPC server. .. index:: pair: function; isServerRunning .. _doxid-class_engine_grpc_server_1a3016dbda087eaaef054472de914093e1: .. ref-code-block:: cpp :class: doxyrest-title-code-block bool isServerRunning() const Indicates whether the gRPC server is currently running. .. index:: pair: function; serverAddress .. _doxid-class_engine_grpc_server_1acd608554e1b2f520c75b7d77652e1c58: .. ref-code-block:: cpp :class: doxyrest-title-code-block const std::string serverAddress() const Returns address of the gRPC server. .. index:: pair: function; registerDataPack .. _doxid-class_engine_grpc_server_1a50502d2f65705c5d8bdeb3de6f29d8fc: .. ref-code-block:: cpp :class: doxyrest-title-code-block void registerDataPack( const std::string& datapackName, :ref:`ProtoDataPackController`* interface ) Registers a datapack controller with the given name in the engine. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - datapackName - Name of the datapack to be registered * - datapackController - Pointer to the datapack controller object that's supposed to be registered in the engine .. index:: pair: function; getEngineName .. _doxid-class_engine_grpc_server_1ae6ba3c50128215f71618e63069e8f329: .. ref-code-block:: cpp :class: doxyrest-title-code-block const std::string& getEngineName() Get the Engine name.