Kea: isc::dhcp::CacheHostDataSource Class Reference

| Kea 3.2.0-git

isc::dhcp::CacheHostDataSource Class Referenceabstract

Abstract interface extending base simple data source for host reservations to host cache. More...

`#include <cache_host_data_source.h>`

Inheritance diagram for isc::dhcp::CacheHostDataSource:
[legend]

## Public Member Functions
virtual | ~CacheHostDataSource ()
| Default destructor implementation.
virtual size_t | capacity () const =0
| Return the maximum number of entries.
virtual void | flush (size_t count)=0
| Flush entries.
virtual size_t | insert (const ConstHostPtr &host, bool overwrite)=0
| Insert a host into the cache.
virtual bool | remove (const HostPtr &host)=0
| Remove a host from the cache.
virtual size_t | size () const =0
| Return the number of entries.
Public Member Functions inherited from isc::dhcp::BaseHostDataSource
virtual | ~BaseHostDataSource ()
| Default destructor implementation.
virtual void | add (const HostPtr &host)=0
| Adds a new host to the collection.
virtual void | commit ()
| Commit Transactions.
virtual bool | del (const SubnetID &subnet_id, const asiolink::IOAddress &addr)=0
| Attempts to delete hosts by (subnet-id, address).
virtual bool | del4 (const SubnetID &subnet_id, const Host::IdentifierType &identifier_type, const uint8_t *identifier_begin, const size_t identifier_len)=0
| Attempts to delete a host by (subnet-id4, identifier, identifier-type).
virtual bool | del6 (const SubnetID &subnet_id, const Host::IdentifierType &identifier_type, const uint8_t *identifier_begin, const size_t identifier_len)=0
| Attempts to delete a host by (subnet-id6, identifier, identifier-type).
virtual ConstHostPtr | get4 (const SubnetID &subnet_id, const asiolink::IOAddress &address) const =0
| Returns a host connected to the IPv4 subnet and having a reservation for a specified IPv4 address.
virtual ConstHostPtr | get4 (const SubnetID &subnet_id, const Host::IdentifierType &identifier_type, const uint8_t *identifier_begin, const size_t identifier_len) const =0
| Returns a host connected to the IPv4 subnet.
virtual ConstHostPtr | get6 (const asiolink::IOAddress &prefix, const uint8_t prefix_len) const =0
| Returns a host using the specified IPv6 prefix.
virtual ConstHostPtr | get6 (const SubnetID &subnet_id, const asiolink::IOAddress &address) const =0
| Returns a host connected to the IPv6 subnet and having a reservation for a specified IPv6 address or prefix.
virtual ConstHostPtr | get6 (const SubnetID &subnet_id, const Host::IdentifierType &identifier_type, const uint8_t *identifier_begin, const size_t identifier_len) const =0
| Returns a host connected to the IPv6 subnet.
virtual ConstHostCollection | getAll (const Host::IdentifierType &identifier_type, const uint8_t *identifier_begin, const size_t identifier_len) const =0
| Return all hosts connected to any subnet for which reservations have been made using a specified identifier.
virtual ConstHostCollection | getAll4 (const asiolink::IOAddress &address) const =0
| Returns a collection of hosts using the specified IPv4 address.
virtual ConstHostCollection | getAll4 (const SubnetID &subnet_id) const =0
| Return all hosts in a DHCPv4 subnet.
virtual ConstHostCollection | getAll4 (const SubnetID &subnet_id, const asiolink::IOAddress &address) const =0
| Returns all hosts connected to the IPv4 subnet and having a reservation for a specified address.
virtual ConstHostCollection | getAll6 (const asiolink::IOAddress &address) const =0
| Returns all hosts having a reservation for a specified address or delegated prefix (lease) in all subnets.
virtual ConstHostCollection | getAll6 (const SubnetID &subnet_id) const =0
| Return all hosts in a DHCPv6 subnet.
virtual ConstHostCollection | getAll6 (const SubnetID &subnet_id, const asiolink::IOAddress &address) const =0
| Returns all hosts connected to the IPv6 subnet and having a reservation for a specified address or delegated prefix (lease).
virtual ConstHostCollection | getAllbyHostname (const std::string &hostname) const =0
| Return all hosts with a hostname.
virtual ConstHostCollection | getAllbyHostname4 (const std::string &hostname, const SubnetID &subnet_id) const =0
| Return all hosts with a hostname in a DHCPv4 subnet.
virtual ConstHostCollection | getAllbyHostname6 (const std::string &hostname, const SubnetID &subnet_id) const =0
| Return all hosts with a hostname in a DHCPv6 subnet.
virtual ConstHostCollection | getPage4 (const SubnetID &subnet_id, size_t &source_index, uint64_t lower_host_id, const HostPageSize &page_size) const =0
| Returns range of hosts in a DHCPv4 subnet.
virtual ConstHostCollection | getPage4 (size_t &source_index, uint64_t lower_host_id, const HostPageSize &page_size) const =0
| Returns range of hosts.
virtual ConstHostCollection | getPage6 (const SubnetID &subnet_id, size_t &source_index, uint64_t lower_host_id, const HostPageSize &page_size) const =0
| Returns range of hosts in a DHCPv6 subnet.
virtual ConstHostCollection | getPage6 (size_t &source_index, uint64_t lower_host_id, const HostPageSize &page_size) const =0
| Returns range of hosts.
virtual isc::db::DatabaseConnection::ParameterMap | getParameters () const
| Return backend parameters.
virtual std::string | getType () const =0
| Return backend type.
virtual bool | isUnusable ()
| Flag which indicates if the host manager has at least one unusable connection.
virtual void | rollback ()
| Rollback Transactions.
virtual bool | setIPReservationsUnique (const bool unique)=0
| Controls whether IP reservations are unique or non-unique.
virtual void | update (HostPtr const &host)
| Attempts to update an existing host entry.

## Additional Inherited Members
Public Types inherited from isc::dhcp::BaseHostDataSource
enum | IdType { ID_HWADDR = 0 , ID_DUID = 1 }
| Specifies the type of an identifier. More...

## Detailed Description

Abstract interface extending base simple data source for host reservations to host cache.

Only the insert() method is required to use the cache.

Definition at line 18 of file cache_host_data_source.h.

## Constructor & Destructor Documentation

## ◆ ~CacheHostDataSource()

virtual isc::dhcp::CacheHostDataSource::~CacheHostDataSource | ( |  | ) |
| inlinevirtual

Default destructor implementation.

Definition at line 22 of file cache_host_data_source.h.

## Member Function Documentation

## ◆ capacity()

virtual size_t isc::dhcp::CacheHostDataSource::capacity | ( |  | ) | const
| pure virtual

Return the maximum number of entries.

Returns
  the maximum number of entries, 0 means unbound.

Implemented in isc::host_cache::HostCache.

## ◆ flush()

virtual void isc::dhcp::CacheHostDataSource::flush | ( | size_t | count | ) |
| pure virtual

Flush entries.

Parameters

  count | number of entries to remove, 0 means all.

Implemented in isc::host_cache::HostCache.

## ◆ insert()

virtual size_t isc::dhcp::CacheHostDataSource::insert | ( | const ConstHostPtr & | host,
|  | bool | overwrite )
| pure virtual

Insert a host into the cache.

Similar to `add()` but with a different purpose.

Parameters

  host | Pointer to the new `Host` object being inserted.
  overwrite | false if doing nothing in case of conflicts (and returning 1), true if removing conflicting entries (and returning their number).

Returns
  number of conflicts limited to one if overwrite is false.

Implemented in isc::host_cache::HostCache.

## ◆ remove()

virtual bool isc::dhcp::CacheHostDataSource::remove | ( | const HostPtr & | host | ) |
| pure virtual

Remove a host from the cache.

Does the same as `del`, `del4` or `del6` but with a more uniform interface and a different purpose.

Note
  A pointer to a copy does not remove the object.

Parameters

  host | Pointer to the existing `Host` object being removed.

Returns
  true when found and removed.

Implemented in isc::host_cache::HostCache.

## ◆ size()

virtual size_t isc::dhcp::CacheHostDataSource::size | ( |  | ) | const
| pure virtual

Return the number of entries.

Returns
  the current number of active entries in the cache.

Implemented in isc::host_cache::HostCache.

The documentation for this class was generated from the following file:

- cache_host_data_source.h