Kea  1.9.9-git
nc_add.h
Go to the documentation of this file.
1 // Copyright (C) 2013-2015 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 NC_ADD_H
8 #define NC_ADD_H
9 
11 
12 #include <d2/nc_trans.h>
13 #include <dns/rdata.h>
14 
15 namespace isc {
16 namespace d2 {
17 
20 public:
21  NameAddTransactionError(const char* file, size_t line,
22  const char* what) :
23  isc::Exception(file, line, what) { };
24 };
25 
53 public:
54 
56  static const int ADDING_FWD_ADDRS_ST = NCT_DERIVED_STATE_MIN + 1;
58 
61 
65 
67  static const int FQDN_IN_USE_EVT = NCT_DERIVED_EVENT_MIN + 1;
69 
73 
88  DdnsDomainPtr& forward_domain,
89  DdnsDomainPtr& reverse_domain,
90  D2CfgMgrPtr& cfg_mgr);
91 
93  virtual ~NameAddTransaction();
94 
95 protected:
102  virtual void defineEvents();
103 
111  virtual void verifyEvents();
112 
119  virtual void defineStates();
120 
128  virtual void verifyStates();
129 
150  void readyHandler();
151 
175 
200 
249  void addingFwdAddrsHandler();
250 
302 
344 
360  void processAddOkHandler();
361 
380 
398 
418 
438 };
439 
441 typedef boost::shared_ptr<NameAddTransaction> NameAddTransactionPtr;
442 
443 } // namespace isc::d2
444 } // namespace isc
445 #endif
This file defines the class NameChangeTransaction.
virtual void defineStates()
Adds states defined by NameAddTransaction to the state set.
Definition: nc_add.cc:76
static const int FQDN_NOT_IN_USE_EVT
Event sent when replace attempt to fails with address not in use.
Definition: nc_add.h:71
virtual void verifyEvents()
Validates the contents of the set of events.
Definition: nc_add.cc:58
void replacingFwdAddrsHandler()
State handler for REPLACING_FWD_ADDRS_ST.
Definition: nc_add.cc:288
boost::shared_ptr< DdnsDomain > DdnsDomainPtr
Defines a pointer for DdnsDomain instances.
Definition: d2_config.h:591
void selectingFwdServerHandler()
State handler for SELECTING_FWD_SERVER_ST.
Definition: nc_add.cc:144
static const int ADDING_FWD_ADDRS_ST
State that attempts to add forward address records.
Definition: nc_add.h:57
static const int REPLACING_FWD_ADDRS_ST
State that attempts to replace forward address records.
Definition: nc_add.h:60
NameAddTransactionError(const char *file, size_t line, const char *what)
Definition: nc_add.h:21
boost::shared_ptr< NameChangeRequest > NameChangeRequestPtr
Defines a pointer to a NameChangeRequest.
Definition: ncr_msg.h:212
void replacingRevPtrsHandler()
State handler for REPLACING_REV_PTRS_ST.
Definition: nc_add.cc:440
static const int NCT_DERIVED_STATE_MIN
Value at which custom states in a derived class should begin.
Definition: nc_trans.h:108
static const int NCT_DERIVED_EVENT_MIN
Value at which custom events in a derived class should begin.
Definition: nc_trans.h:144
virtual ~NameAddTransaction()
Destructor.
Definition: nc_add.cc:44
void addingFwdAddrsHandler()
State handler for ADD_FWD_ADDRS_ST.
Definition: nc_add.cc:173
void processAddFailedHandler()
State handler for PROCESS_TRANS_FAILED_ST.
Definition: nc_add.cc:566
boost::shared_ptr< NameAddTransaction > NameAddTransactionPtr
Defines a pointer to a NameAddTransaction.
Definition: nc_add.h:441
boost::shared_ptr< D2CfgMgr > D2CfgMgrPtr
Defines a shared pointer to D2CfgMgr.
Definition: d2_cfg_mgr.h:334
static const int FQDN_IN_USE_EVT
Event sent when an add attempt fails with address in use.
Definition: nc_add.h:68
void selectingRevServerHandler()
State handler for SELECTING_REV_SERVER_ST.
Definition: nc_add.cc:410
void processAddOkHandler()
State handler for PROCESS_TRANS_OK_ST.
Definition: nc_add.cc:549
virtual void defineEvents()
Adds events defined by NameAddTransaction to the event set.
Definition: nc_add.cc:48
static const int REPLACING_REV_PTRS_ST
State that attempts to replace reverse PTR records.
Definition: nc_add.h:63
virtual const char * what() const
Returns a C-style character string of the cause of the exception.
Embodies the "life-cycle" required to carry out a DDNS Add update.
Definition: nc_add.h:52
NameAddTransaction(asiolink::IOServicePtr &io_service, dhcp_ddns::NameChangeRequestPtr &ncr, DdnsDomainPtr &forward_domain, DdnsDomainPtr &reverse_domain, D2CfgMgrPtr &cfg_mgr)
Constructor.
Definition: nc_add.cc:31
virtual void verifyStates()
Validates the contents of the set of states.
Definition: nc_add.cc:107
This is a base class for exceptions thrown from the DNS library module.
Defines the logger used by the top-level component of kea-dhcp-ddns.
void buildReplaceRevPtrsRequest()
Builds a DNS request to replace a reverse DNS entry for an FQDN.
Definition: nc_add.cc:674
void buildAddFwdAddressRequest()
Builds a DNS request to add an forward DNS entry for an FQDN.
Definition: nc_add.cc:584
void buildReplaceFwdAddressRequest()
Builds a DNS request to replace forward DNS entry for an FQDN.
Definition: nc_add.cc:626
Embodies the "life-cycle" required to carry out a DDNS update.
Definition: nc_trans.h:77
void readyHandler()
State handler for READY_ST.
Definition: nc_add.cc:124
Thrown if the NameAddTransaction encounters a general error.
Definition: nc_add.h:19