Kea  1.5.0
control_socket.h
Go to the documentation of this file.
1 // Copyright (C) 2018 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 
9 
10 #ifndef CONTROL_SOCKET_H
11 #define CONTROL_SOCKET_H
12 
13 #include <netconf/netconf_config.h>
14 #include <exceptions/exceptions.h>
15 
16 namespace isc {
17 namespace netconf {
18 
21 public:
22  ControlSocketError(const char* file, size_t line, const char* what) :
23  isc::Exception(file, line, what) { };
24 };
25 
33 public:
34 
40  if (!ctrl_sock) {
41  isc_throw(ControlSocketError, "ControlSocket constructor called "
42  "with a null configuration");
43  }
44  }
45 
47  virtual ~ControlSocketBase() {
48  }
49 
54  return (socket_cfg_->getType());
55  }
56 
60  const std::string getName() const {
61  return (socket_cfg_->getName());
62  }
63 
67  const isc::http::Url getUrl() const {
68  return (socket_cfg_->getUrl());
69  }
70 
78  virtual data::ConstElementPtr configGet(const std::string& service) = 0;
79 
89  const std::string& service) = 0;
90 
100  const std::string& service) = 0;
101 
104 };
105 
107 typedef boost::shared_ptr<ControlSocketBase> ControlSocketBasePtr;
108 
115 template <CfgControlSocket::Type TYPE> ControlSocketBasePtr
117  isc_throw(NotImplemented, "not specialized createControlSocket");
118 }
119 
127 
128 } // namespace netconf
129 } // namespace isc
130 
131 #endif // CONTROL_SOCKET_H
isc::netconf::ControlSocketError::ControlSocketError
ControlSocketError(const char *file, size_t line, const char *what)
Definition: control_socket.h:22
isc::netconf::ControlSocketBase::~ControlSocketBase
virtual ~ControlSocketBase()
Destructor (does nothing).
Definition: control_socket.h:47
isc::netconf::ControlSocketError
Exception thrown when the error during communication.
Definition: control_socket.h:20
isc::netconf::ControlSocketBase::getUrl
const isc::http::Url getUrl() const
Returns the HTTP server URL.
Definition: control_socket.h:67
isc::http::Url
Represents an URL.
Definition: url.h:20
isc::netconf::ControlSocketBase::socket_cfg_
CfgControlSocketPtr socket_cfg_
The control socket configuration.
Definition: control_socket.h:103
isc::netconf::ControlSocketBase::configGet
virtual data::ConstElementPtr configGet(const std::string &service)=0
Get configuration.
isc::netconf::ControlSocketBase::configSet
virtual data::ConstElementPtr configSet(data::ConstElementPtr config, const std::string &service)=0
Set configuration.
isc::Exception
This is a base class for exceptions thrown from the DNS library module.
Definition: exceptions/exceptions.h:23
isc
Defines the logger used by the top-level component of kea-dhcp-ddns.
Definition: agent_parser.cc:144
isc::Exception::what
virtual const char * what() const
Returns a C-style character string of the cause of the exception.
Definition: exceptions/exceptions.cc:32
isc_throw
#define isc_throw(type, stream)
A shortcut macro to insert known values into exception arguments.
Definition: exceptions/exceptions.h:192
netconf_config.h
A collection of classes for housing and parsing the application configuration necessary for the Netco...
isc::netconf::ControlSocketBase::getName
const std::string getName() const
Returns the Unix socket name.
Definition: control_socket.h:60
isc::netconf::ControlSocketBase::getType
CfgControlSocket::Type getType() const
Getter which returns the socket type.
Definition: control_socket.h:53
isc::netconf::ControlSocketBasePtr
boost::shared_ptr< ControlSocketBase > ControlSocketBasePtr
Type definition for the pointer to the ControlSocketBase.
Definition: control_socket.h:107
isc::netconf::CfgControlSocket::Type
Type
Defines the list of possible constrol socket types.
Definition: netconf_config.h:74
isc::netconf::CfgControlSocketPtr
boost::shared_ptr< CfgControlSocket > CfgControlSocketPtr
Defines a pointer for CfgControlSocket instances.
Definition: netconf_config.h:144
exceptions.h
isc::netconf::createControlSocket
ControlSocketBasePtr createControlSocket(CfgControlSocketPtr ctrl_sock)
Factory template for control sockets.
Definition: control_socket.cc:23
isc::NotImplemented
A generic exception that is thrown when a function is not implemented.
Definition: exceptions/exceptions.h:165
isc::netconf::ControlSocketBase::configTest
virtual data::ConstElementPtr configTest(data::ConstElementPtr config, const std::string &service)=0
Test configuration.
isc::data::ConstElementPtr
boost::shared_ptr< const Element > ConstElementPtr
Definition: data.h:23
isc::netconf::ControlSocketBase
Base class for control socket communication.
Definition: control_socket.h:32
isc::netconf::ControlSocketBase::ControlSocketBase
ControlSocketBase(CfgControlSocketPtr ctrl_sock)
Constructor.
Definition: control_socket.h:39