BitShares-Core  7.0.2
BitShares blockchain node software and command-line wallet software
Public Member Functions | Protected Attributes | List of all members
graphene::app::abstract_plugin Class Referenceabstract

#include <plugin.hpp>

Inheritance diagram for graphene::app::abstract_plugin:
graphene::app::plugin graphene::account_history::account_history_plugin graphene::api_helper_indexes::api_helper_indexes graphene::custom_operations::custom_operations_plugin graphene::debug_witness_plugin::debug_witness_plugin graphene::delayed_node::delayed_node_plugin graphene::elasticsearch::elasticsearch_plugin graphene::es_objects::es_objects_plugin graphene::grouped_orders::grouped_orders_plugin graphene::market_history::market_history_plugin graphene::snapshot_plugin::snapshot_plugin graphene::template_plugin::template_plugin graphene::witness_plugin::witness_plugin

Public Member Functions

 abstract_plugin (application &a)
 
virtual ~abstract_plugin ()=default
 
virtual std::string plugin_name () const =0
 Get the name of the plugin. More...
 
virtual std::string plugin_description () const =0
 Get the description of the plugin. More...
 
applicationapp () const
 Get a reference of the application bound to the plugin. More...
 
virtual void plugin_initialize (const boost::program_options::variables_map &options)=0
 Perform early startup routines and register plugin indexes, callbacks, etc. More...
 
virtual void plugin_startup ()=0
 Begin normal runtime operations. More...
 
virtual void plugin_shutdown ()=0
 Cleanly shut down the plugin. More...
 
virtual void plugin_set_program_options (boost::program_options::options_description &command_line_options, boost::program_options::options_description &config_file_options)=0
 Fill in command line parameters used by the plugin. More...
 

Protected Attributes

application_app
 

Detailed Description

Definition at line 33 of file plugin.hpp.

Constructor & Destructor Documentation

◆ abstract_plugin()

graphene::app::abstract_plugin::abstract_plugin ( application a)
inlineexplicit

Definition at line 36 of file plugin.hpp.

◆ ~abstract_plugin()

virtual graphene::app::abstract_plugin::~abstract_plugin ( )
virtualdefault

Member Function Documentation

◆ app()

application& graphene::app::abstract_plugin::app ( ) const
inline

Get a reference of the application bound to the plugin.

Definition at line 46 of file plugin.hpp.

◆ plugin_description()

virtual std::string graphene::app::abstract_plugin::plugin_description ( ) const
pure virtual

◆ plugin_initialize()

virtual void graphene::app::abstract_plugin::plugin_initialize ( const boost::program_options::variables_map &  options)
pure virtual

Perform early startup routines and register plugin indexes, callbacks, etc.

Plugins MUST supply a method initialize() which will be called early in the application startup. This method should contain early setup code such as initializing variables, adding indexes to the database, registering callback methods from the database, adding APIs, etc., as well as applying any options in the options map

This method is called BEFORE the database is open, therefore any routines which require any chain state MUST NOT be called by this method. These routines should be performed in startup() instead.

Parameters
optionsThe options passed to the application, via configuration files or command line

Implemented in graphene::market_history::market_history_plugin, graphene::app::plugin, graphene::api_helper_indexes::api_helper_indexes, graphene::account_history::account_history_plugin, graphene::grouped_orders::grouped_orders_plugin, graphene::elasticsearch::elasticsearch_plugin, graphene::witness_plugin::witness_plugin, graphene::template_plugin::template_plugin, graphene::custom_operations::custom_operations_plugin, graphene::es_objects::es_objects_plugin, graphene::debug_witness_plugin::debug_witness_plugin, graphene::snapshot_plugin::snapshot_plugin, and graphene::delayed_node::delayed_node_plugin.

◆ plugin_name()

virtual std::string graphene::app::abstract_plugin::plugin_name ( ) const
pure virtual

◆ plugin_set_program_options()

virtual void graphene::app::abstract_plugin::plugin_set_program_options ( boost::program_options::options_description &  command_line_options,
boost::program_options::options_description &  config_file_options 
)
pure virtual

Fill in command line parameters used by the plugin.

Parameters
command_line_optionsAll options this plugin supports taking on the command-line
config_file_optionsAll options this plugin supports storing in a configuration file

This method populates its arguments with any command-line and configuration file options the plugin supports. If a plugin does not need these options, it may simply provide an empty implementation of this method.

Implemented in graphene::app::plugin, graphene::witness_plugin::witness_plugin, graphene::debug_witness_plugin::debug_witness_plugin, graphene::snapshot_plugin::snapshot_plugin, graphene::market_history::market_history_plugin, graphene::api_helper_indexes::api_helper_indexes, graphene::account_history::account_history_plugin, graphene::grouped_orders::grouped_orders_plugin, graphene::elasticsearch::elasticsearch_plugin, graphene::template_plugin::template_plugin, graphene::custom_operations::custom_operations_plugin, graphene::es_objects::es_objects_plugin, and graphene::delayed_node::delayed_node_plugin.

◆ plugin_shutdown()

virtual void graphene::app::abstract_plugin::plugin_shutdown ( )
pure virtual

Cleanly shut down the plugin.

This is called to request a clean shutdown (e.g. due to SIGINT or SIGTERM).

Implemented in graphene::app::plugin, graphene::witness_plugin::witness_plugin, graphene::template_plugin::template_plugin, graphene::es_objects::es_objects_plugin, and graphene::debug_witness_plugin::debug_witness_plugin.

◆ plugin_startup()

virtual void graphene::app::abstract_plugin::plugin_startup ( )
pure virtual

Member Data Documentation

◆ _app

application& graphene::app::abstract_plugin::_app
protected

Definition at line 93 of file plugin.hpp.


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