7#ifndef WRITABLE_HOST_DATA_SOURCE_H
8#define WRITABLE_HOST_DATA_SOURCE_H
41 const uint8_t* identifier_begin,
42 const size_t identifier_len) = 0;
114 size_t& source_index,
115 uint64_t lower_host_id,
137 size_t& source_index,
138 uint64_t lower_host_id,
159 uint64_t lower_host_id,
180 uint64_t lower_host_id,
206 const uint8_t* identifier_begin,
const size_t identifier_len) = 0;
220 const uint8_t* identifier_begin,
const size_t identifier_len) = 0;
The IOAddress class represents an IP addresses (version agnostic)
Wraps value holding size of the page with host reservations.
IdentifierType
Type of the host identifier.
Interface for retrieving writable host reservations.
virtual HostCollection getPage4(size_t &source_index, uint64_t lower_host_id, const HostPageSize &page_size)=0
Returns range of hosts.
virtual HostCollection getPage4(const SubnetID &subnet_id, size_t &source_index, uint64_t lower_host_id, const HostPageSize &page_size)=0
Returns range of hosts in a DHCPv4 subnet.
virtual HostCollection getAll(const Host::IdentifierType &identifier_type, const uint8_t *identifier_begin, const size_t identifier_len)=0
Non-const version of the getAll const method.
virtual ~WritableHostDataSource()
Default destructor implementation.
virtual HostPtr get6(const asiolink::IOAddress &prefix, const uint8_t prefix_len)=0
Returns a host using the specified IPv6 prefix.
virtual HostCollection getPage6(const SubnetID &subnet_id, size_t &source_index, uint64_t lower_host_id, const HostPageSize &page_size)=0
Returns range of hosts in a DHCPv6 subnet.
virtual HostCollection getAllbyHostname4(const std::string &hostname, const SubnetID &subnet_id)=0
Return all hosts with a hostname in a DHCPv4 subnet.
virtual HostCollection getAll4(const asiolink::IOAddress &address)=0
Returns a collection of hosts using the specified IPv4 address.
virtual HostCollection getPage6(size_t &source_index, uint64_t lower_host_id, const HostPageSize &page_size)=0
Returns range of hosts.
virtual HostCollection getAll6(const SubnetID &subnet_id)=0
Returns a collection of hosts in the specified DHCPv6 subnet.
virtual HostPtr get6(const SubnetID &subnet_id, const Host::IdentifierType &identifier_type, const uint8_t *identifier_begin, const size_t identifier_len)=0
Returns a host connected to the IPv6 subnet.
virtual HostPtr get4(const SubnetID &subnet_id, const Host::IdentifierType &identifier_type, const uint8_t *identifier_begin, const size_t identifier_len)=0
Returns a host connected to the IPv4 subnet.
virtual HostCollection getAllbyHostname(const std::string &hostname)=0
Return all hosts with a hostname.
virtual HostCollection getAllbyHostname6(const std::string &hostname, const SubnetID &subnet_id)=0
Return all hosts with a hostname in a DHCPv6 subnet.
virtual HostCollection getAll4(const SubnetID &subnet_id)=0
Returns a collection of hosts in the specified DHCPv4 subnet.
virtual HostPtr get6(const SubnetID &subnet_id, const asiolink::IOAddress &address)=0
Returns a host connected to the IPv6 subnet and having a reservation for a specified IPv6 address or ...
boost::shared_ptr< Host > HostPtr
Pointer to the Host object.
std::vector< HostPtr > HostCollection
Collection of the Host objects.
uint32_t SubnetID
Defines unique IPv4 or IPv6 subnet identifier.
Defines the logger used by the top-level component of kea-lfc.