Plugin description added, SON plugin params example
This commit is contained in:
parent
940a620ca2
commit
e90735a162
6 changed files with 36 additions and 7 deletions
|
|
@ -135,7 +135,7 @@ else( WIN32 ) # Apple AND Linux
|
||||||
endif( APPLE )
|
endif( APPLE )
|
||||||
|
|
||||||
if( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" )
|
if( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" )
|
||||||
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-builtin-memcmp -Wno-class-memaccess -Wno-parentheses -Wno-terminate -Wno-invalid-offsetof" )
|
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-builtin-memcmp -Wno-parentheses -Wno-invalid-offsetof" )
|
||||||
elseif( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
|
elseif( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
|
||||||
if( CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 4.0.0 OR CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.0.0 )
|
if( CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 4.0.0 OR CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.0.0 )
|
||||||
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-invalid-partial-specialization" )
|
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-invalid-partial-specialization" )
|
||||||
|
|
|
||||||
|
|
@ -56,12 +56,19 @@ namespace graphene { namespace app {
|
||||||
auto plug = std::make_shared<PluginType>();
|
auto plug = std::make_shared<PluginType>();
|
||||||
plug->plugin_set_app(this);
|
plug->plugin_set_app(this);
|
||||||
|
|
||||||
boost::program_options::options_description plugin_cli_options("Options for plugin " + plug->plugin_name()), plugin_cfg_options;
|
string cli_plugin_desc = plug->plugin_name() + " plugin. " + plug->plugin_description() + "\nOptions";
|
||||||
|
boost::program_options::options_description plugin_cli_options( cli_plugin_desc ), plugin_cfg_options;
|
||||||
plug->plugin_set_program_options(plugin_cli_options, plugin_cfg_options);
|
plug->plugin_set_program_options(plugin_cli_options, plugin_cfg_options);
|
||||||
if( !plugin_cli_options.options().empty() )
|
if( !plugin_cli_options.options().empty() )
|
||||||
_cli_options.add(plugin_cli_options);
|
_cli_options.add(plugin_cli_options);
|
||||||
|
|
||||||
if( !plugin_cfg_options.options().empty() )
|
if( !plugin_cfg_options.options().empty() )
|
||||||
|
{
|
||||||
|
std::string header_name = "plugin-cfg-header-" + plug->plugin_name();
|
||||||
|
std::string header_desc = plug->plugin_name() + " plugin options";
|
||||||
|
_cfg_options.add_options()(header_name.c_str(), header_desc.c_str());
|
||||||
_cfg_options.add(plugin_cfg_options);
|
_cfg_options.add(plugin_cfg_options);
|
||||||
|
}
|
||||||
|
|
||||||
add_available_plugin( plug );
|
add_available_plugin( plug );
|
||||||
return plug;
|
return plug;
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,7 @@ class abstract_plugin
|
||||||
public:
|
public:
|
||||||
virtual ~abstract_plugin(){}
|
virtual ~abstract_plugin(){}
|
||||||
virtual std::string plugin_name()const = 0;
|
virtual std::string plugin_name()const = 0;
|
||||||
|
virtual std::string plugin_description()const = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Perform early startup routines and register plugin indexes, callbacks, etc.
|
* @brief Perform early startup routines and register plugin indexes, callbacks, etc.
|
||||||
|
|
@ -100,6 +101,7 @@ class plugin : public abstract_plugin
|
||||||
virtual ~plugin() override;
|
virtual ~plugin() override;
|
||||||
|
|
||||||
virtual std::string plugin_name()const override;
|
virtual std::string plugin_name()const override;
|
||||||
|
virtual std::string plugin_description()const override;
|
||||||
virtual void plugin_initialize( const boost::program_options::variables_map& options ) override;
|
virtual void plugin_initialize( const boost::program_options::variables_map& options ) override;
|
||||||
virtual void plugin_startup() override;
|
virtual void plugin_startup() override;
|
||||||
virtual void plugin_shutdown() override;
|
virtual void plugin_shutdown() override;
|
||||||
|
|
|
||||||
|
|
@ -43,6 +43,11 @@ std::string plugin::plugin_name()const
|
||||||
return "<unknown plugin>";
|
return "<unknown plugin>";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string plugin::plugin_description()const
|
||||||
|
{
|
||||||
|
return "<no description>";
|
||||||
|
}
|
||||||
|
|
||||||
void plugin::plugin_initialize( const boost::program_options::variables_map& options )
|
void plugin::plugin_initialize( const boost::program_options::variables_map& options )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,9 @@ class peerplays_sidechain_plugin_impl
|
||||||
virtual ~peerplays_sidechain_plugin_impl();
|
virtual ~peerplays_sidechain_plugin_impl();
|
||||||
|
|
||||||
peerplays_sidechain_plugin& _self;
|
peerplays_sidechain_plugin& _self;
|
||||||
|
|
||||||
|
uint32_t parameter;
|
||||||
|
uint32_t optional_parameter;
|
||||||
};
|
};
|
||||||
|
|
||||||
peerplays_sidechain_plugin_impl::~peerplays_sidechain_plugin_impl()
|
peerplays_sidechain_plugin_impl::~peerplays_sidechain_plugin_impl()
|
||||||
|
|
@ -40,15 +43,27 @@ std::string peerplays_sidechain_plugin::plugin_name()const
|
||||||
}
|
}
|
||||||
|
|
||||||
void peerplays_sidechain_plugin::plugin_set_program_options(
|
void peerplays_sidechain_plugin::plugin_set_program_options(
|
||||||
boost::program_options::options_description& /*cli*/,
|
boost::program_options::options_description& cli,
|
||||||
boost::program_options::options_description& /*cfg*/
|
boost::program_options::options_description& cfg
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
cli.add_options()
|
||||||
|
("parameter", boost::program_options::value<uint32_t>(), "Parameter")
|
||||||
|
("optional-parameter", boost::program_options::value<uint32_t>(), "Optional parameter")
|
||||||
|
;
|
||||||
|
cfg.add(cli);
|
||||||
}
|
}
|
||||||
|
|
||||||
void peerplays_sidechain_plugin::plugin_initialize(const boost::program_options::variables_map& /*options*/)
|
void peerplays_sidechain_plugin::plugin_initialize(const boost::program_options::variables_map& options)
|
||||||
{
|
{
|
||||||
ilog("peerplays sidechain plugin: plugin_initialize()");
|
ilog("peerplays sidechain plugin: plugin_initialize()");
|
||||||
|
|
||||||
|
if (options.count("parameter")) {
|
||||||
|
my->parameter = options["optional-parameter"].as<uint32_t>();
|
||||||
|
}
|
||||||
|
if (options.count("optional-parameter")) {
|
||||||
|
my->optional_parameter = options["optional-parameter"].as<uint32_t>();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void peerplays_sidechain_plugin::plugin_startup()
|
void peerplays_sidechain_plugin::plugin_startup()
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,6 @@
|
||||||
#include <fc/interprocess/signals.hpp>
|
#include <fc/interprocess/signals.hpp>
|
||||||
|
|
||||||
#include <boost/filesystem.hpp>
|
#include <boost/filesystem.hpp>
|
||||||
|
|
||||||
#include <boost/property_tree/ptree.hpp>
|
#include <boost/property_tree/ptree.hpp>
|
||||||
#include <boost/container/flat_set.hpp>
|
#include <boost/container/flat_set.hpp>
|
||||||
#include <boost/algorithm/string.hpp>
|
#include <boost/algorithm/string.hpp>
|
||||||
|
|
@ -149,10 +148,11 @@ int main(int argc, char** argv) {
|
||||||
std::for_each(plugins.begin(), plugins.end(), [node](const std::string& plug) mutable {
|
std::for_each(plugins.begin(), plugins.end(), [node](const std::string& plug) mutable {
|
||||||
if (!plug.empty()) {
|
if (!plug.empty()) {
|
||||||
node->enable_plugin(plug);
|
node->enable_plugin(plug);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
bpo::notify(options);
|
bpo::notify(options);
|
||||||
|
|
||||||
node->initialize(data_dir, options);
|
node->initialize(data_dir, options);
|
||||||
node->initialize_plugins( options );
|
node->initialize_plugins( options );
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue