Kea  1.9.9-git
command_creator.h
Go to the documentation of this file.
1 // Copyright (C) 2018-2021 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 HA_COMMAND_CREATOR_H
8 #define HA_COMMAND_CREATOR_H
9 
10 #include <lease_update_backlog.h>
11 #include <ha_server_type.h>
12 #include <cc/data.h>
13 #include <dhcpsrv/lease.h>
14 #include <string>
15 
16 namespace isc {
17 namespace ha {
18 
22 public:
23 
32  createDHCPDisable(const unsigned int max_period,
33  const HAServerType& server_type);
34 
41  createDHCPEnable(const HAServerType& server_type);
42 
48  createHAReset(const HAServerType& server_type);
49 
54  createHeartbeat(const HAServerType& server_type);
55 
67  createLease4Update(const dhcp::Lease4& lease4);
68 
76  createLease4Delete(const dhcp::Lease4& lease4);
77 
83 
95  const uint32_t limit);
96 
104  static data::ConstElementPtr
106  const dhcp::Lease6CollectionPtr& deleted_leases);
107 
115  static data::ConstElementPtr
117 
128  static data::ConstElementPtr
129  createLease6Update(const dhcp::Lease6& lease6);
130 
137  static data::ConstElementPtr
138  createLease6Delete(const dhcp::Lease6& lease6);
139 
143  static data::ConstElementPtr
145 
155  static data::ConstElementPtr
156  createLease6GetPage(const dhcp::Lease6Ptr& lease6,
157  const uint32_t limit);
158 
165  static data::ConstElementPtr
166  createMaintenanceNotify(const bool cancel, const HAServerType& server_type);
167 
168 private:
169 
181  static void insertLeaseExpireTime(data::ElementPtr& lease);
182 
200  static void
201  insertService(data::ConstElementPtr& command,
202  const HAServerType& server_type);
203 };
204 
205 } // end of namespace ha
206 } // end of namespace isc
207 
208 #endif
static data::ConstElementPtr createHAReset(const HAServerType &server_type)
Creates ha-reset command.
static data::ConstElementPtr createLease6GetAll()
Creates lease6-get-all command.
Structure that holds a lease for IPv4 address.
Definition: lease.h:294
boost::shared_ptr< Element > ElementPtr
Definition: data.h:20
static data::ConstElementPtr createLease6GetPage(const dhcp::Lease6Ptr &lease6, const uint32_t limit)
Creates lease6-get-page command.
HAServerType
Lists possible server types for which HA service is created.
static data::ConstElementPtr createLease4GetAll()
Creates lease4-get-all command.
boost::shared_ptr< Lease4 > Lease4Ptr
Pointer to a Lease4 structure.
Definition: lease.h:283
static data::ConstElementPtr createLease4Update(const dhcp::Lease4 &lease4)
Creates lease4-update command.
boost::shared_ptr< const Element > ConstElementPtr
Definition: data.h:23
Structure that holds a lease for IPv6 address and/or prefix.
Definition: lease.h:503
static data::ConstElementPtr createLease4Delete(const dhcp::Lease4 &lease4)
Creates lease4-del command.
Defines the logger used by the top-level component of kea-dhcp-ddns.
static data::ConstElementPtr createLease6Delete(const dhcp::Lease6 &lease6)
Creates lease6-del command.
boost::shared_ptr< Lease6Collection > Lease6CollectionPtr
A shared pointer to the collection of IPv6 leases.
Definition: lease.h:644
static data::ConstElementPtr createLease6BulkApply(const dhcp::Lease6CollectionPtr &leases, const dhcp::Lease6CollectionPtr &deleted_leases)
Creates lease6-bulk-apply command.
static data::ConstElementPtr createHeartbeat(const HAServerType &server_type)
Creates ha-heartbeat command for DHCP server.
static data::ConstElementPtr createLease6Update(const dhcp::Lease6 &lease6)
Creates lease6-update command.
boost::shared_ptr< Lease6 > Lease6Ptr
Pointer to a Lease6 structure.
Definition: lease.h:492
static data::ConstElementPtr createMaintenanceNotify(const bool cancel, const HAServerType &server_type)
Creates ha-maintenance-notify command.
Queue holding a backlog of unsent lease updates.
static data::ConstElementPtr createDHCPEnable(const HAServerType &server_type)
Creates dhcp-enable command for DHCP server.
static data::ConstElementPtr createDHCPDisable(const unsigned int max_period, const HAServerType &server_type)
Creates dhcp-disable command for DHCP server.
static data::ConstElementPtr createLease4GetPage(const dhcp::Lease4Ptr &lease4, const uint32_t limit)
Creates lease4-get-page command.
Holds a collection of functions which generate commands used for High Availability.