Kea 2.2.0
ha_impl.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_IMPL_H
8#define HA_IMPL_H
9
10#include <ha_config.h>
11#include <ha_service.h>
12#include <asiolink/io_service.h>
13#include <cc/data.h>
15#include <hooks/hooks.h>
16#include <boost/noncopyable.hpp>
17#include <boost/shared_ptr.hpp>
18
19
20namespace isc {
21namespace ha {
22
31class HAImpl : public boost::noncopyable {
32public:
33
35 HAImpl();
36
41 void configure(const data::ConstElementPtr& input_config);
42
53 void startService(const asiolink::IOServicePtr& io_service,
54 const dhcp::NetworkStatePtr& network_state,
55 const HAServerType& server_type);
56
58 ~HAImpl();
59
60public:
61
64 return (config_);
65 }
66
86 void buffer4Receive(hooks::CalloutHandle& callout_handle);
87
91 void leases4Committed(hooks::CalloutHandle& callout_handle);
92
112 void buffer6Receive(hooks::CalloutHandle& callout_handle);
113
117 void leases6Committed(hooks::CalloutHandle& callout_handle);
118
125 void commandProcessed(hooks::CalloutHandle& callout_handle);
126
130 void heartbeatHandler(hooks::CalloutHandle& callout_handle);
131
135 void synchronizeHandler(hooks::CalloutHandle& callout_handle);
136
140 void scopesHandler(hooks::CalloutHandle& callout_handle);
141
145 void continueHandler(hooks::CalloutHandle& callout_handle);
146
151
155 void maintenanceStartHandler(hooks::CalloutHandle& callout_handle);
156
161
165 void haResetHandler(hooks::CalloutHandle& callout_handle);
166
171
172protected:
173
176
179
180};
181
183typedef boost::shared_ptr<HAImpl> HAImplPtr;
184
185} // end of namespace isc::ha
186} // end of namespace isc
187
188#endif
High Availability hooks library implementation.
Definition: ha_impl.h:31
void scopesHandler(hooks::CalloutHandle &callout_handle)
Implements handler for the ha-scopes command.
Definition: ha_impl.cc:390
void continueHandler(hooks::CalloutHandle &callout_handle)
Implements handler for the ha-continue command.
Definition: ha_impl.cc:447
void syncCompleteNotifyHandler(hooks::CalloutHandle &callout_handle)
Implements handler for the ha-sync-complete-notify command.
Definition: ha_impl.cc:494
HAServicePtr service_
Pointer to the high availability service (state machine).
Definition: ha_impl.h:178
void configure(const data::ConstElementPtr &input_config)
Parses configuration.
Definition: ha_impl.cc:35
~HAImpl()
Destructor.
Definition: ha_impl.cc:52
void maintenanceCancelHandler(hooks::CalloutHandle &callout_handle)
Implements handler for the ha-maintenance-cancel command.
Definition: ha_impl.cc:482
void haResetHandler(hooks::CalloutHandle &callout_handle)
Implements handler for the ha-reset command.
Definition: ha_impl.cc:488
void maintenanceNotifyHandler(hooks::CalloutHandle &callout_handle)
Implements handler for the ha-maintenance-notify command.
Definition: ha_impl.cc:453
void synchronizeHandler(hooks::CalloutHandle &callout_handle)
Implements handler for the ha-sync command.
Definition: ha_impl.cc:328
void startService(const asiolink::IOServicePtr &io_service, const dhcp::NetworkStatePtr &network_state, const HAServerType &server_type)
Creates high availability service using current configuration.
Definition: ha_impl.cc:41
void maintenanceStartHandler(hooks::CalloutHandle &callout_handle)
Implements handler for the ha-maintenance-start command.
Definition: ha_impl.cc:476
void leases4Committed(hooks::CalloutHandle &callout_handle)
Implementation of the "leases4_committed" callout.
Definition: ha_impl.cc:114
HAConfigPtr getConfig() const
Returns parsed configuration.
Definition: ha_impl.h:63
void buffer4Receive(hooks::CalloutHandle &callout_handle)
Implementation of the "buffer4_receive" callout.
Definition: ha_impl.cc:61
HAConfigPtr config_
Holds parsed configuration.
Definition: ha_impl.h:175
void buffer6Receive(hooks::CalloutHandle &callout_handle)
Implementation of the "buffer6_receive" callout.
Definition: ha_impl.cc:175
void commandProcessed(hooks::CalloutHandle &callout_handle)
Implementation of the "command_processed" callout.
Definition: ha_impl.cc:289
HAImpl()
Constructor.
Definition: ha_impl.cc:30
void leases6Committed(hooks::CalloutHandle &callout_handle)
Implementation of the "leases6_committed" callout.
Definition: ha_impl.cc:228
void heartbeatHandler(hooks::CalloutHandle &callout_handle)
Implements handle for the heartbeat command.
Definition: ha_impl.cc:322
Per-packet callout handle.
boost::shared_ptr< const Element > ConstElementPtr
Definition: data.h:27
boost::shared_ptr< NetworkState > NetworkStatePtr
Pointer to the NetworkState object.
boost::shared_ptr< HAImpl > HAImplPtr
Pointer to the High Availability hooks library implementation.
Definition: ha_impl.h:183
boost::shared_ptr< HAConfig > HAConfigPtr
Pointer to the High Availability configuration structure.
Definition: ha_config.h:786
HAServerType
Lists possible server types for which HA service is created.
boost::shared_ptr< HAService > HAServicePtr
Pointer to the HAService class.
Definition: ha_service.h:1296
Defines the logger used by the top-level component of kea-lfc.