Kea 1.5.0
pgsql_host_data_source.h
Go to the documentation of this file.
1// Copyright (C) 2016-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
7#ifndef PGSQL_HOST_DATA_SOURCE_H
8#define PGSQL_HOST_DATA_SOURCE_H
9
13
14namespace isc {
15namespace dhcp {
16
18class PgSqlHostDataSourceImpl;
19
36public:
37
61
65 virtual ~PgSqlHostDataSource();
66
100 virtual void add(const HostPtr& host);
101
110 virtual bool del(const SubnetID& subnet_id, const asiolink::IOAddress& addr);
111
124 virtual bool del4(const SubnetID& subnet_id,
125 const Host::IdentifierType& identifier_type,
126 const uint8_t* identifier_begin, const size_t identifier_len);
127
140 virtual bool del6(const SubnetID& subnet_id,
141 const Host::IdentifierType& identifier_type,
142 const uint8_t* identifier_begin, const size_t identifier_len);
143
157 virtual ConstHostCollection
158 getAll(const Host::IdentifierType& identifier_type,
159 const uint8_t* identifier_begin, const size_t identifier_len) const;
160
169 virtual ConstHostCollection
170 getAll4(const asiolink::IOAddress& address) const;
171
182 virtual ConstHostPtr
183 get4(const SubnetID& subnet_id, const Host::IdentifierType& identifier_type,
184 const uint8_t* identifier_begin, const size_t identifier_len) const;
185
200 virtual ConstHostPtr
201 get4(const SubnetID& subnet_id, const asiolink::IOAddress& address) const;
202
213 virtual ConstHostPtr
214 get6(const SubnetID& subnet_id, const Host::IdentifierType& identifier_type,
215 const uint8_t* identifier_begin, const size_t identifier_len) const;
216
223 virtual ConstHostPtr
224 get6(const asiolink::IOAddress& prefix, const uint8_t prefix_len) const;
225
233 virtual ConstHostPtr
234 get6(const SubnetID& subnet_id, const asiolink::IOAddress& address) const;
235
242 virtual std::string getType() const {
243 return (std::string("postgresql"));
244 }
245
249 virtual std::string getName() const;
250
256 virtual std::string getDescription() const;
257
271 virtual std::pair<uint32_t, uint32_t> getVersion() const;
272
276 virtual void commit();
277
281 virtual void rollback();
282
283private:
286};
287
288}
289}
290
291#endif // PGSQL_HOST_DATA_SOURCE_H
std::map< std::string, std::string > ParameterMap
Database configuration parameter map.
Base interface for the classes implementing simple data source for host reservations.
IdentifierType
Type of the host identifier.
Definition: host.h:252
Implementation of the PgSqlHostDataSource.
PostgreSQL Host Data Source.
virtual bool del6(const SubnetID &subnet_id, const Host::IdentifierType &identifier_type, const uint8_t *identifier_begin, const size_t identifier_len)
Attempts to delete a host by (subnet6-id, identifier type, identifier)
virtual ConstHostPtr get4(const SubnetID &subnet_id, const Host::IdentifierType &identifier_type, const uint8_t *identifier_begin, const size_t identifier_len) const
Returns a host connected to the IPv4 subnet.
virtual std::string getName() const
Returns the name of the open database.
virtual ConstHostCollection getAll(const Host::IdentifierType &identifier_type, const uint8_t *identifier_begin, const size_t identifier_len) const
Return all hosts connected to any subnet for which reservations have been made using a specified iden...
virtual std::string getDescription() const
Returns description of the backend.
virtual ConstHostCollection getAll4(const asiolink::IOAddress &address) const
Returns a collection of hosts using the specified IPv4 address.
virtual bool del(const SubnetID &subnet_id, const asiolink::IOAddress &addr)
Attempts to delete a host by (subnet-id, address)
virtual void rollback()
Rollback Transactions.
virtual std::pair< uint32_t, uint32_t > getVersion() const
Returns backend version.
virtual bool del4(const SubnetID &subnet_id, const Host::IdentifierType &identifier_type, const uint8_t *identifier_begin, const size_t identifier_len)
Attempts to delete a host by (subnet4-id, identifier type, identifier)
virtual void commit()
Commit Transactions.
virtual void add(const HostPtr &host)
Adds a new host to the collection.
virtual ConstHostPtr get6(const SubnetID &subnet_id, const Host::IdentifierType &identifier_type, const uint8_t *identifier_begin, const size_t identifier_len) const
Returns a host connected to the IPv6 subnet.
virtual ~PgSqlHostDataSource()
Virtual destructor.
virtual std::string getType() const
Return backend type.
boost::shared_ptr< Host > HostPtr
Pointer to the Host object.
Definition: host.h:725
std::vector< ConstHostPtr > ConstHostCollection
Collection of the const Host objects.
Definition: host.h:731
uint32_t SubnetID
Unique identifier for a subnet (both v4 and v6)
Definition: lease.h:24
boost::shared_ptr< const Host > ConstHostPtr
Const pointer to the Host object.
Definition: host.h:728
Defines the logger used by the top-level component of kea-dhcp-ddns.