Kea 2.0.2
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
11#include <ha_server_type.h>
12#include <cc/data.h>
13#include <dhcpsrv/lease.h>
14#include <string>
15
16namespace isc {
17namespace ha {
18
22public:
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
106 const dhcp::Lease6CollectionPtr& deleted_leases);
107
117
129 createLease6Update(const dhcp::Lease6& lease6);
130
138 createLease6Delete(const dhcp::Lease6& lease6);
139
145
157 const uint32_t limit);
158
166 createMaintenanceNotify(const bool cancel, const HAServerType& server_type);
167
173 createSyncCompleteNotify(const HAServerType& server_type);
174
175private:
176
188 static void insertLeaseExpireTime(data::ElementPtr& lease);
189
207 static void
208 insertService(data::ConstElementPtr& command,
209 const HAServerType& server_type);
210};
211
212} // end of namespace ha
213} // end of namespace isc
214
215#endif
Holds a collection of functions which generate commands used for High Availability.
static data::ConstElementPtr createLease4Delete(const dhcp::Lease4 &lease4)
Creates lease4-del command.
static data::ConstElementPtr createHeartbeat(const HAServerType &server_type)
Creates ha-heartbeat command for DHCP server.
static data::ConstElementPtr createLease4Update(const dhcp::Lease4 &lease4)
Creates lease4-update command.
static data::ConstElementPtr createDHCPDisable(const unsigned int max_period, const HAServerType &server_type)
Creates dhcp-disable command for DHCP server.
static data::ConstElementPtr createLease6Update(const dhcp::Lease6 &lease6)
Creates lease6-update command.
static data::ConstElementPtr createHAReset(const HAServerType &server_type)
Creates ha-reset command.
static data::ConstElementPtr createLease6Delete(const dhcp::Lease6 &lease6)
Creates lease6-del command.
static data::ConstElementPtr createLease6BulkApply(const dhcp::Lease6CollectionPtr &leases, const dhcp::Lease6CollectionPtr &deleted_leases)
Creates lease6-bulk-apply command.
static data::ConstElementPtr createSyncCompleteNotify(const HAServerType &server_type)
Creates ha-sync-complete-notify command.
static data::ConstElementPtr createLease4GetAll()
Creates lease4-get-all command.
static data::ConstElementPtr createLease6GetPage(const dhcp::Lease6Ptr &lease6, const uint32_t limit)
Creates lease6-get-page command.
static data::ConstElementPtr createMaintenanceNotify(const bool cancel, const HAServerType &server_type)
Creates ha-maintenance-notify command.
static data::ConstElementPtr createDHCPEnable(const HAServerType &server_type)
Creates dhcp-enable command for DHCP server.
static data::ConstElementPtr createLease6GetAll()
Creates lease6-get-all command.
static data::ConstElementPtr createLease4GetPage(const dhcp::Lease4Ptr &lease4, const uint32_t limit)
Creates lease4-get-page command.
Queue holding a backlog of unsent lease updates.
boost::shared_ptr< const Element > ConstElementPtr
Definition: data.h:27
boost::shared_ptr< Element > ElementPtr
Definition: data.h:24
boost::shared_ptr< Lease6 > Lease6Ptr
Pointer to a Lease6 structure.
Definition: lease.h:492
boost::shared_ptr< Lease6Collection > Lease6CollectionPtr
A shared pointer to the collection of IPv6 leases.
Definition: lease.h:644
boost::shared_ptr< Lease4 > Lease4Ptr
Pointer to a Lease4 structure.
Definition: lease.h:283
HAServerType
Lists possible server types for which HA service is created.
Defines the logger used by the top-level component of kea-lfc.
Structure that holds a lease for IPv4 address.
Definition: lease.h:294
Structure that holds a lease for IPv6 address and/or prefix.
Definition: lease.h:503