Kea  2.3.5-git
simple_add.h
Go to the documentation of this file.
1 // Copyright (C) 2020-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 SIMPLE_ADD_H
8 #define SIMPLE_ADD_H
9 
11 
12 #include <d2srv/nc_trans.h>
13 #include <dns/rdata.h>
14 
15 namespace isc {
16 namespace d2 {
17 
20 public:
21  SimpleAddTransactionError(const char* file, size_t line,
22  const char* what) :
23  isc::Exception(file, line, what) { };
24 };
25 
48 public:
49 
51  static const int REPLACING_FWD_ADDRS_ST = NCT_DERIVED_STATE_MIN + 1;
53 
55  static const int REPLACING_REV_PTRS_ST = NCT_DERIVED_STATE_MIN + 3;
57 
59  static const int FQDN_IN_USE_EVT = NCT_DERIVED_EVENT_MIN + 1;
61 
63  static const int FQDN_NOT_IN_USE_EVT = NCT_DERIVED_EVENT_MIN + 2;
65 
80  DdnsDomainPtr& forward_domain,
81  DdnsDomainPtr& reverse_domain,
82  D2CfgMgrPtr& cfg_mgr);
83 
85  virtual ~SimpleAddTransaction();
86 
87 protected:
94  virtual void defineEvents();
95 
103  virtual void verifyEvents();
104 
111  virtual void defineStates();
112 
120  virtual void verifyStates();
121 
142  void readyHandler();
143 
165  void selectingFwdServerHandler();
166 
189  void selectingRevServerHandler();
190 
234  void replacingFwdAddrsHandler();
235 
276  void replacingRevPtrsHandler();
277 
292  void processAddOkHandler();
293 
310  void processAddFailedHandler();
311 
329  void buildReplaceFwdAddressRequest();
330 
347  void buildReplaceRevPtrsRequest();
348 };
349 
351 typedef boost::shared_ptr<SimpleAddTransaction> SimpleAddTransactionPtr;
352 
353 } // namespace isc::d2
354 } // namespace isc
355 #endif
This file defines the class NameChangeTransaction.
Embodies the "life-cycle" required to carry out a DDNS Add update.
Definition: simple_add.h:47
boost::shared_ptr< DdnsDomain > DdnsDomainPtr
Defines a pointer for DdnsDomain instances.
Definition: d2_config.h:612
boost::shared_ptr< NameChangeRequest > NameChangeRequestPtr
Defines a pointer to a NameChangeRequest.
Definition: ncr_msg.h:212
virtual const char * what() const
Returns a C-style character string of the cause of the exception.
boost::shared_ptr< D2CfgMgr > D2CfgMgrPtr
Defines a shared pointer to D2CfgMgr.
Definition: d2_cfg_mgr.h:334
This is a base class for exceptions thrown from the DNS library module.
Defines the logger used by the top-level component of kea-lfc.
boost::shared_ptr< SimpleAddTransaction > SimpleAddTransactionPtr
Defines a pointer to a SimpleAddTransaction.
Definition: simple_add.h:351
Thrown if the SimpleAddTransaction encounters a general error.
Definition: simple_add.h:19
Embodies the "life-cycle" required to carry out a DDNS update.
Definition: nc_trans.h:77
SimpleAddTransactionError(const char *file, size_t line, const char *what)
Definition: simple_add.h:21