Kea 2.5.8
isc::d2::D2Controller Class Reference

Process Controller for D2 Process This class is the DHCP-DDNS specific derivation of DControllerBase. More...

#include <d2_controller.h>

+ Inheritance diagram for isc::d2::D2Controller:

Public Member Functions

virtual ~D2Controller ()
 Destructor.
 
void deregisterCommands ()
 Deregister commands.
 
void registerCommands ()
 Register commands.
 
- Public Member Functions inherited from isc::process::DControllerBase
 DControllerBase (const char *app_name, const char *bin_name)
 Constructor.
 
virtual ~DControllerBase ()
 Destructor.
 
isc::data::ConstElementPtr buildReportHandler (const std::string &command, isc::data::ConstElementPtr args)
 handler for 'build-report' command
 
virtual isc::data::ConstElementPtr checkConfig (isc::data::ConstElementPtr new_config)
 Instance method invoked by the configuration event handler and which processes the actual configuration check.
 
virtual isc::data::ConstElementPtr configFromFile ()
 Reconfigures the process from a configuration file.
 
isc::data::ConstElementPtr configGetHandler (const std::string &command, isc::data::ConstElementPtr args)
 handler for config-get command
 
isc::data::ConstElementPtr configHashGetHandler (const std::string &command, isc::data::ConstElementPtr args)
 handler for config-hash-get command
 
isc::data::ConstElementPtr configReloadHandler (const std::string &command, isc::data::ConstElementPtr args)
 handler for config-reload command
 
isc::data::ConstElementPtr configSetHandler (const std::string &command, isc::data::ConstElementPtr args)
 handler for config-set command
 
isc::data::ConstElementPtr configTestHandler (const std::string &command, isc::data::ConstElementPtr args)
 handler for config-test command
 
isc::data::ConstElementPtr configWriteHandler (const std::string &command, isc::data::ConstElementPtr args)
 handler for config-write command
 
std::string getAppName () const
 Fetches the name of the application under control.
 
std::string getBinName () const
 Fetches the name of the application executable.
 
std::string getVersion (bool extended)
 returns Kea version on stdout and exit.
 
virtual int launch (int argc, char *argv[], const bool test_mode)
 Acts as the primary entry point into the controller execution and provides the outermost application control logic:
 
isc::data::ConstElementPtr serverTagGetHandler (const std::string &command, isc::data::ConstElementPtr args)
 handler for server-tag-get command
 
isc::data::ConstElementPtr shutdownHandler (const std::string &command, isc::data::ConstElementPtr args)
 handler for 'shutdown' command
 
isc::data::ConstElementPtr statusGetHandler (const std::string &command, isc::data::ConstElementPtr args)
 handler for status-get command
 
virtual isc::data::ConstElementPtr updateConfig (isc::data::ConstElementPtr new_config)
 Instance method invoked by the configuration event handler and which processes the actual configuration update.
 
isc::data::ConstElementPtr versionGetHandler (const std::string &command, isc::data::ConstElementPtr args)
 handler for version-get command
 
- Public Member Functions inherited from isc::process::Daemon
 Daemon ()
 Default constructor.
 
virtual ~Daemon ()
 Destructor.
 
void checkConfigFile () const
 Checks the configuration file name.
 
virtual void cleanup ()
 Performs final deconfiguration.
 
void createPIDFile (int pid=0)
 Creates the PID file.
 
std::string getConfigFile () const
 Returns config file name.
 
int getExitValue ()
 Fetches the exit value.
 
std::string getPIDFileDir () const
 Returns the directory used when forming default PID file name.
 
std::string getPIDFileName () const
 Returns the current PID file name.
 
virtual std::list< std::list< std::string > > jsonPathsToRedact () const
 Return a list of all paths that contain passwords or secrets.
 
isc::data::ConstElementPtr redactConfig (isc::data::ConstElementPtr const &config)
 Redact a configuration.
 
void setConfigFile (const std::string &config_file)
 Sets the configuration file name.
 
void setExitValue (int value)
 Sets the exit value.
 
void setPIDFileDir (const std::string &pid_file_dir)
 Sets the PID file directory.
 
void setPIDFileName (const std::string &pid_file_name)
 Sets PID file name.
 
virtual void shutdown ()
 Initiates shutdown procedure for the whole server.
 
virtual size_t writeConfigFile (const std::string &config_file, isc::data::ConstElementPtr cfg=isc::data::ConstElementPtr()) const
 Writes current configuration to specified file.
 

Static Public Member Functions

static process::DControllerBasePtrinstance ()
 Static singleton instance method.
 
- Static Public Member Functions inherited from isc::process::Daemon
static void configureLogger (const isc::data::ConstElementPtr &log_config, const isc::process::ConfigPtr &storage)
 Configures logger.
 
static std::string getDefaultLoggerName ()
 Returns default logger name.
 
static std::string getProcName ()
 returns the process name This value is used as when forming the default PID file name
 
static bool getVerbose ()
 Returns if running in verbose mode.
 
static std::string getVersion (bool extended)
 returns Kea version on stdout and exits.
 
static void loggerInit (const char *log_name, bool verbose)
 Initializes logger.
 
static void setDefaultLoggerName (const std::string &logger)
 Sets the default logger name.
 
static void setProcName (const std::string &proc_name)
 Sets the process name.
 
static void setVerbose (const bool verbose)
 Sets or clears verbose mode.
 

Static Public Attributes

static const char * d2_app_name_ = "DhcpDdns"
 Defines the application name, this is passed into base class and appears in log statements.
 
static const char * d2_bin_name_ = "kea-dhcp-ddns"
 Defines the executable name.
 

Protected Member Functions

virtual std::string getVersionAddendum ()
 Returns version info specific to D2.
 
- Protected Member Functions inherited from isc::process::DControllerBase
void checkConfigOnly ()
 Check the configuration.
 
virtual DProcessBasecreateProcess ()=0
 Abstract method that is responsible for instantiating the application process object.
 
virtual bool customOption (int option, char *optarg)
 Virtual method that provides derivations the opportunity to support additional command line options.
 
virtual const std::string getCustomOpts () const
 Virtual method which returns a string containing the option letters for any custom command line options supported by the derivation.
 
asiolink::IOServicePtrgetIOService ()
 Getter for fetching the controller's IOService.
 
DProcessBasePtr getProcess ()
 Fetches the current process.
 
virtual const std::string getUsageText () const
 Virtual method which can be used to contribute derivation specific usage text.
 
virtual std::string getVersionAddendum ()
 Fetches text containing additional version specifics.
 
std::string handleOtherObjects (isc::data::ConstElementPtr args)
 Deals with other (i.e.
 
void initProcess ()
 Instantiates the application process and then initializes it.
 
void initSignalHandling ()
 Initializes signal handling.
 
bool isCheckOnly () const
 Supplies whether or not check only mode is enabled.
 
bool isVerbose () const
 Supplies whether or not verbose logging is enabled.
 
void parseArgs (int argc, char *argv[])
 Processes the command line arguments.
 
virtual isc::data::ConstElementPtr parseFile (const std::string &file_name)
 Parse a given file into Elements.
 
virtual isc::data::ConstElementPtr parseText (const std::string &input)
 Parse text into Elements.
 
virtual void processSignal (int signum)
 Application-level signal processing method.
 
void runProcess ()
 Invokes the application process's event loop,(DBaseProcess::run).
 
void setCheckOnly (bool value)
 Method for enabling or disabling check only mode.
 
void setVerbose (bool value)
 Method for enabling or disabling verbose logging.
 
isc::data::ConstElementPtr shutdownProcess (isc::data::ConstElementPtr args)
 Initiates shutdown procedure.
 
void usage (const std::string &text)
 Prints the program usage text to std error.
 
- Protected Member Functions inherited from isc::process::Daemon
std::string makePIDFileName () const
 Manufacture the pid file name.
 

Friends

class NakedD2Controller
 To facilitate unit testing.
 

Additional Inherited Members

- Static Protected Member Functions inherited from isc::process::DControllerBase
static DControllerBasePtrgetController ()
 Static getter which returns the singleton instance.
 
static void setController (const DControllerBasePtr &controller)
 Static setter which sets the singleton instance.
 
- Protected Attributes inherited from isc::process::Daemon
isc::asiolink::IOSignalSetPtr signal_set_
 A pointer to the object installing custom signal handlers.
 
boost::posix_time::ptime start_
 Timestamp of the start of the daemon.
 

Detailed Description

Process Controller for D2 Process This class is the DHCP-DDNS specific derivation of DControllerBase.

It creates and manages an instance of the DHCP-DDNS application process, D2Process.

Todo:
Currently, this class provides only the minimum required specialized behavior to run the DHCP-DDNS service. It may very well expand as the service implementation evolves. Some thought was given to making DControllerBase a templated class but the labor savings versus the potential number of virtual methods which may be overridden didn't seem worth the clutter at this point.

Definition at line 29 of file d2_controller.h.

Constructor & Destructor Documentation

◆ ~D2Controller()

isc::d2::D2Controller::~D2Controller ( )
virtual

Destructor.

Definition at line 144 of file d2_controller.cc.

Member Function Documentation

◆ deregisterCommands()

void isc::d2::D2Controller::deregisterCommands ( )

Deregister commands.

Note
Does not throw.

Definition at line 104 of file d2_controller.cc.

References isc::config::CommandMgr::closeCommandSocket(), isc::config::BaseCommandMgr::deregisterCommand(), and isc::config::CommandMgr::instance().

+ Here is the call graph for this function:

◆ getVersionAddendum()

std::string isc::d2::D2Controller::getVersionAddendum ( )
protectedvirtual

Returns version info specific to D2.

Reimplemented from isc::process::DControllerBase.

Definition at line 148 of file d2_controller.cc.

References isc::cryptolink::CryptoLink::getVersion().

+ Here is the call graph for this function:

◆ instance()

DControllerBasePtr & isc::d2::D2Controller::instance ( )
static

Static singleton instance method.

This method returns the base class singleton instance member. It instantiates the singleton and sets the base class instance member upon first invocation.

Returns
returns the pointer reference to the singleton instance.

Definition at line 34 of file d2_controller.cc.

References isc::process::DControllerBase::getController(), and isc::process::DControllerBase::setController().

Referenced by main(), and isc::d2::D2Process::run().

+ Here is the call graph for this function:

◆ registerCommands()

Friends And Related Function Documentation

◆ NakedD2Controller

friend class NakedD2Controller
friend

To facilitate unit testing.

Definition at line 87 of file d2_controller.h.

Member Data Documentation

◆ d2_app_name_

const char * isc::d2::D2Controller::d2_app_name_ = "DhcpDdns"
static

Defines the application name, this is passed into base class and appears in log statements.

Defines the application name, this is passed into base class it may be used to locate configuration data and appears in log statement.

Definition at line 43 of file d2_controller.h.

◆ d2_bin_name_

const char * isc::d2::D2Controller::d2_bin_name_ = "kea-dhcp-ddns"
static

Defines the executable name.

Defines the executable name. This is passed into the base class.

This is passed into the base class by convention this should match the executable name.

Definition at line 47 of file d2_controller.h.


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