2#include <boost/program_options.hpp>
11 explicit Plugin(std::shared_ptr<AppBase>& a) :
_app(a) {}
14 std::shared_ptr<AppBase>
app()
const {
return _app.lock(); }
16 virtual std::string
name()
const = 0;
24 virtual void init(
const boost::program_options::variables_map& options) = 0;
26 virtual void addOptions(boost::program_options::options_description& command_line_options) = 0;
29 std::weak_ptr<AppBase>
_app;
std::weak_ptr< AppBase > _app
Definition plugin.hpp:29
Plugin(std::shared_ptr< AppBase > &a)
Definition plugin.hpp:11
virtual void init(const boost::program_options::variables_map &options)=0
virtual ~Plugin()=default
virtual void addOptions(boost::program_options::options_description &command_line_options)=0
virtual std::string description() const =0
virtual std::string name() const =0
virtual void shutdown()=0
std::shared_ptr< AppBase > app() const
Definition plugin.hpp:14