Kea  1.9.9-git
d2_controller.h
Go to the documentation of this file.
1 // Copyright (C) 2013-2019 Internet Systems Consortium, Inc. ("ISC")
2 //
3 // This Source Code Form is subject to the terms of the Mozilla Public
4 // License, v. 2.0. If a copy of the MPL was not distributed with this
5 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
6 
7 #ifndef D2_CONTROLLER_H
8 #define D2_CONTROLLER_H
9 
10 #include <process/d_controller.h>
11 
12 namespace isc {
13 namespace d2 {
14 
17 typedef boost::shared_ptr<D2Controller> D2ControllerPtr;
18 
30 public:
37 
39  virtual ~D2Controller();
40 
43  static const char* d2_app_name_;
44 
47  static const char* d2_bin_name_;
48 
50  void registerCommands();
51 
54  void deregisterCommands();
55 
56 protected:
58  virtual std::string getVersionAddendum();
59 
60 private:
69  virtual process::DProcessBase* createProcess();
70 
80  virtual isc::data::ConstElementPtr parseFile(const std::string& file_name);
81 
84  D2Controller();
85 
87  friend class NakedD2Controller;
88 };
89 
90 }; // namespace isc::d2
91 }; // namespace isc
92 
93 #endif
boost::shared_ptr< DControllerBase > DControllerBasePtr
Definition: d_controller.h:78
void registerCommands()
Register commands.
virtual ~D2Controller()
Destructor.
void deregisterCommands()
Deregister commands.
static const char * d2_bin_name_
Defines the executable name.
Definition: d2_controller.h:47
static process::DControllerBasePtr & instance()
Static singleton instance method.
boost::shared_ptr< D2Controller > D2ControllerPtr
Pointer to a process controller.
Definition: d2_controller.h:15
static const char * d2_app_name_
Defines the application name, this is passed into base class and appears in log statements.
Definition: d2_controller.h:43
boost::shared_ptr< const Element > ConstElementPtr
Definition: data.h:23
Defines the logger used by the top-level component of kea-dhcp-ddns.
friend class NakedD2Controller
To facilitate unit testing.
Definition: d2_controller.h:87
virtual std::string getVersionAddendum()
Returns version info specific to D2.
Application Process Interface.
Definition: d_process.h:81
Application Controller.
Definition: d_controller.h:104
Process Controller for D2 Process This class is the DHCP-DDNS specific derivation of DControllerBase...
Definition: d2_controller.h:29