Kea  1.5.0
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:

Public Member Functions

virtual ~CacheHostDataSource ()
 Default destructor implementation. More...
 
virtual size_t capacity () const =0
 Return the maximum number of entries. More...
 
virtual void flush (size_t count)=0
 Flush entries. More...
 
virtual size_t insert (const ConstHostPtr &host, bool overwrite)=0
 Insert a host into the cache. More...
 
virtual bool remove (const HostPtr &host)=0
 Remove a host from the cache. More...
 
virtual size_t size () const =0
 Return the number of entries. More...
 
- Public Member Functions inherited from isc::dhcp::BaseHostDataSource
virtual ~BaseHostDataSource ()
 Default destructor implementation. More...
 
virtual void add (const HostPtr &host)=0
 Adds a new host to the collection. More...
 
virtual void commit ()
 Commit Transactions. More...
 
virtual bool del (const SubnetID &subnet_id, const asiolink::IOAddress &addr)=0
 Attempts to delete a host by (subnet-id, address) More...
 
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) More...
 
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) More...
 
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. More...
 
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. More...
 
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. More...
 
virtual ConstHostPtr get6 (const asiolink::IOAddress &prefix, const uint8_t prefix_len) const =0
 Returns a host using the specified IPv6 prefix. More...
 
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. More...
 
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. More...
 
virtual ConstHostCollection getAll4 (const asiolink::IOAddress &address) const =0
 Returns a collection of hosts using the specified IPv4 address. More...
 
virtual std::string getType () const =0
 Return backend type. More...
 
virtual void rollback ()
 Rollback Transactions. More...
 

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 17 of file cache_host_data_source.h.

Constructor & Destructor Documentation

◆ ~CacheHostDataSource()

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

Default destructor implementation.

Definition at line 21 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.

◆ flush()

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

Flush entries.

Parameters
countnumber of entries to remove, 0 means all.

◆ 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
hostPointer to the new Host object being inserted.
overwritefalse 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.

◆ remove()

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

Remove a host from the cache.

Does the same than 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
hostPointer to the existing Host object being removed.
Returns
true when found and removed.

◆ 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.

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