Base class for a Thrift application with a singleton with instance function thrift_application_base::i(). Lazy initialization is used to start the Thrift runtime, therefore the Thrift runtime is not started unless thrift_application_base::i() is called at least once. This typically means that at least one rpc variable must be registered by a block before the runtime will start. More...
#include <gnuradio/thrift_application_base.h>
Public Member Functions | |
| thrift_application_base (TserverClass *_app) | |
| ~thrift_application_base () | |
Static Public Member Functions | |
| static TserverBase * | i () |
| static const std::vector< std::string > | endpoints () |
Protected Member Functions | |
| void | set_endpoint (const std::string &endpoint) |
| virtual TserverBase * | i_impl ()=0 |
Protected Attributes | |
| std::unique_ptr< apache::thrift::server::TServer > | d_thriftserver |
| gr::logger_ptr | d_logger |
| gr::logger_ptr | d_debug_logger |
Static Protected Attributes | |
| static TserverClass * | d_application |
| static const unsigned int | d_default_max_init_attempts |
| static const unsigned int | d_default_thrift_port |
| static const unsigned int | d_default_num_thrift_threads |
| static const unsigned int | d_default_thrift_buffer_size |
Base class for a Thrift application with a singleton with instance function thrift_application_base::i(). Lazy initialization is used to start the Thrift runtime, therefore the Thrift runtime is not started unless thrift_application_base::i() is called at least once. This typically means that at least one rpc variable must be registered by a block before the runtime will start.
| TserverBase | Template parameter naming the type of the server base, which is typically rpcserverbase. |
| TserverClass | Template parameter naming the eventual type of the fully derived application. |
| _app | Reference to the fully derived application instance to be returned by thrift_application_base::i(). |
| thrift_application_base< TserverBase, TserverClass >::thrift_application_base | ( | TserverClass * | _app | ) |
References gr::configure_default_loggers(), d_application, d_debug_logger, and d_logger.
| thrift_application_base< TserverBase, TserverClass >::~thrift_application_base | ( | ) |
Destructor for the application. Since shutdown and cleanup of the runtime is typically custom to a particular booter implementation, this must be implemented as a specialized function for a particular booter. Thus a template implementation is not provided here.
|
static |
Returns the endpoint string of this application.
|
static |
The application singleton instance function.
References d_application.
|
protectedpure virtual |
|
protected |
Allows this application's booter to set the endpoint string after the Thrift runtime has initialized.
| [in] | endpoint | The endpoint string reported by this class. |
|
staticprotected |
Reference to the fully derived application instance.
Referenced by i(), and thrift_application_base().
|
protected |
Referenced by thrift_application_base().
|
staticprotected |
Max number of attempts when checking the Thrift runtime for Initialization before giving up. Set in the Thrift config file (see Configuration).
|
staticprotected |
Maximum number of threads to create when serving multiple rpc clients. Set in the Thrift config file (see Configuration).
Referenced by thrift_server_template< TserverBase, TserverClass, TImplClass >::thrift_server_template().
|
staticprotected |
Default packet size for the IP payload of thrift packets. Set in the Thrift config file (see Configuration).
Referenced by thrift_server_template< TserverBase, TserverClass, TImplClass >::thrift_server_template().
|
staticprotected |
Default port for the runtime to listen on, if a static port is not specified. Set in the Thrift config file (see Configuration).
Referenced by thrift_server_template< TserverBase, TserverClass, TImplClass >::thrift_server_template().
|
protected |
Logging instances.
Referenced by thrift_application_base().
|
protected |
Reference to the Thrift runtime.
Referenced by thrift_server_template< TserverBase, TserverClass, TImplClass >::thrift_server_template().