Kea  2.3.5-git
memfile_lease_storage.h File Reference
#include <asiolink/io_address.h>
#include <dhcpsrv/lease.h>
#include <dhcpsrv/subnet_id.h>
#include <boost/multi_index/indexed_by.hpp>
#include <boost/multi_index/member.hpp>
#include <boost/multi_index/mem_fun.hpp>
#include <boost/multi_index/hashed_index.hpp>
#include <boost/multi_index/ordered_index.hpp>
#include <boost/multi_index_container.hpp>
#include <boost/multi_index/composite_key.hpp>
#include <functional>
#include <vector>
+ Include dependency graph for memfile_lease_storage.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  isc::dhcp::AddressIndexTag
 Tag for indexes by address. More...
 
struct  isc::dhcp::ClientIdSubnetIdIndexTag
 Tag for indexes by client and subnet identifiers. More...
 
struct  isc::dhcp::DuidIaidTypeIndexTag
 Tag for indexes by DUID, IAID, lease type tuple. More...
 
struct  isc::dhcp::DuidIndexTag
 Tag for index using DUID. More...
 
struct  isc::dhcp::ExpirationIndexTag
 Tag for indexes by expiration time. More...
 
struct  isc::dhcp::HostnameIndexTag
 Tag for index using hostname. More...
 
struct  isc::dhcp::HWAddressSubnetIdIndexTag
 Tag for indexes by HW address, subnet identifier tuple. More...
 
class  isc::dhcp::Lease6ExtendedInfo
 Lease6 extended informations for Bulk Lease Query. More...
 
struct  isc::dhcp::LeaseAddressIndexTag
 Tag for indexes by lease address. More...
 
struct  isc::dhcp::RelayIdIndexTag
 Tag for index using relay-id. More...
 
struct  isc::dhcp::RemoteIdIndexTag
 Tag for index using remote-id. More...
 
struct  isc::dhcp::SubnetIdIndexTag
 Tag for indexes by subnet-id. More...
 

Namespaces

 isc
 Defines the logger used by the top-level component of kea-lfc.
 
 isc::dhcp
 

Typedefs

Multi index containers holding DHCPv4 and DHCPv6 leases.
typedef boost::multi_index_container< Lease6Ptr, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::tag< AddressIndexTag >, boost::multi_index::member< Lease, isc::asiolink::IOAddress, &Lease::addr_ > >, boost::multi_index::ordered_non_unique< boost::multi_index::tag< DuidIaidTypeIndexTag >, boost::multi_index::composite_key< Lease6, boost::multi_index::const_mem_fun< Lease6, const std::vector< uint8_t > &, &Lease6::getDuidVector >, boost::multi_index::member< Lease6, uint32_t, &Lease6::iaid_ >, boost::multi_index::member< Lease6, Lease::Type, &Lease6::type_ > > >, boost::multi_index::ordered_non_unique< boost::multi_index::tag< ExpirationIndexTag >, boost::multi_index::composite_key< Lease6, boost::multi_index::const_mem_fun< Lease, bool, &Lease::stateExpiredReclaimed >, boost::multi_index::const_mem_fun< Lease, int64_t, &Lease::getExpirationTime > > >, boost::multi_index::ordered_non_unique< boost::multi_index::tag< SubnetIdIndexTag >, boost::multi_index::member< Lease, isc::dhcp::SubnetID, &Lease::subnet_id_ > >, boost::multi_index::ordered_non_unique< boost::multi_index::tag< DuidIndexTag >, boost::multi_index::const_mem_fun< Lease6, const std::vector< uint8_t > &, &Lease6::getDuidVector > >, boost::multi_index::ordered_non_unique< boost::multi_index::tag< HostnameIndexTag >, boost::multi_index::member< Lease, std::string, &Lease::hostname_ > > >> isc::dhcp::Lease6Storage
 A multi index container holding DHCPv6 leases. More...
 
typedef boost::multi_index_container< Lease4Ptr, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::tag< AddressIndexTag >, boost::multi_index::member< Lease, isc::asiolink::IOAddress, &Lease::addr_ > >, boost::multi_index::ordered_non_unique< boost::multi_index::tag< HWAddressSubnetIdIndexTag >, boost::multi_index::composite_key< Lease4, boost::multi_index::const_mem_fun< Lease, const std::vector< uint8_t > &, &Lease::getHWAddrVector >, boost::multi_index::member< Lease, SubnetID, &Lease::subnet_id_ > > >, boost::multi_index::ordered_non_unique< boost::multi_index::tag< ClientIdSubnetIdIndexTag >, boost::multi_index::composite_key< Lease4, boost::multi_index::const_mem_fun< Lease4, const std::vector< uint8_t > &, &Lease4::getClientIdVector >, boost::multi_index::member< Lease, uint32_t, &Lease::subnet_id_ > > >, boost::multi_index::ordered_non_unique< boost::multi_index::tag< ExpirationIndexTag >, boost::multi_index::composite_key< Lease4, boost::multi_index::const_mem_fun< Lease, bool, &Lease::stateExpiredReclaimed >, boost::multi_index::const_mem_fun< Lease, int64_t, &Lease::getExpirationTime > > >, boost::multi_index::ordered_non_unique< boost::multi_index::tag< SubnetIdIndexTag >, boost::multi_index::member< Lease, isc::dhcp::SubnetID, &Lease::subnet_id_ > >, boost::multi_index::ordered_non_unique< boost::multi_index::tag< HostnameIndexTag >, boost::multi_index::member< Lease, std::string, &Lease::hostname_ > >, boost::multi_index::hashed_non_unique< boost::multi_index::tag< RemoteIdIndexTag >, boost::multi_index::member< Lease4, std::vector< uint8_t >, &Lease4::remote_id_ > >, boost::multi_index::ordered_non_unique< boost::multi_index::tag< RelayIdIndexTag >, boost::multi_index::composite_key< Lease4, boost::multi_index::member< Lease4, std::vector< uint8_t >, &Lease4::relay_id_ >, boost::multi_index::member< Lease, isc::asiolink::IOAddress, &Lease::addr_ > > > >> isc::dhcp::Lease4Storage
 A multi index container holding DHCPv4 leases. More...
 
Indexes used by the multi index containers
typedef Lease6Storage::index< AddressIndexTag >::type isc::dhcp::Lease6StorageAddressIndex
 DHCPv6 lease storage index by address. More...
 
typedef Lease6Storage::index< DuidIaidTypeIndexTag >::type isc::dhcp::Lease6StorageDuidIaidTypeIndex
 DHCPv6 lease storage index by DUID, IAID, lease type. More...
 
typedef Lease6Storage::index< ExpirationIndexTag >::type isc::dhcp::Lease6StorageExpirationIndex
 DHCPv6 lease storage index by expiration time. More...
 
typedef Lease6Storage::index< SubnetIdIndexTag >::type isc::dhcp::Lease6StorageSubnetIdIndex
 DHCPv6 lease storage index by Subnet-id. More...
 
typedef Lease6Storage::index< DuidIndexTag >::type isc::dhcp::Lease6StorageDuidIndex
 DHCPv6 lease storage index by DUID. More...
 
typedef Lease6Storage::index< HostnameIndexTag >::type isc::dhcp::Lease6StorageHostnameIndex
 DHCPv6 lease storage index by hostname. More...
 
typedef Lease4Storage::index< AddressIndexTag >::type isc::dhcp::Lease4StorageAddressIndex
 DHCPv4 lease storage index by address. More...
 
typedef Lease4Storage::index< ExpirationIndexTag >::type isc::dhcp::Lease4StorageExpirationIndex
 DHCPv4 lease storage index by expiration time. More...
 
typedef Lease4Storage::index< HWAddressSubnetIdIndexTag >::type isc::dhcp::Lease4StorageHWAddressSubnetIdIndex
 DHCPv4 lease storage index by HW address and subnet identifier. More...
 
typedef Lease4Storage::index< ClientIdSubnetIdIndexTag >::type isc::dhcp::Lease4StorageClientIdSubnetIdIndex
 DHCPv4 lease storage index by client and subnet identifier. More...
 
typedef Lease4Storage::index< SubnetIdIndexTag >::type isc::dhcp::Lease4StorageSubnetIdIndex
 DHCPv4 lease storage index subnet identifier. More...
 
typedef Lease4Storage::index< HostnameIndexTag >::type isc::dhcp::Lease4StorageHostnameIndex
 DHCPv4 lease storage index by hostname. More...
 
typedef Lease4Storage::index< RemoteIdIndexTag >::type isc::dhcp::Lease4StorageRemoteIdIndex
 DHCPv4 lease storage index by remote identifier. More...
 
typedef Lease4Storage::index< RelayIdIndexTag >::type isc::dhcp::Lease4StorageRelayIdIndex
 DHCPv4 lease storage index by relay identifier. More...
 
Multi index containers holding DHCPv6 lease extended informations

for Bulk Lease Query.

typedef boost::shared_ptr< Lease6ExtendedInfo > isc::dhcp::Lease6ExtendedInfoPtr
 Pointer to a Lease6ExtendedInfo object. More...
 
typedef boost::multi_index_container< Lease6ExtendedInfoPtr, boost::multi_index::indexed_by< boost::multi_index::ordered_non_unique< boost::multi_index::tag< RelayIdIndexTag >, boost::multi_index::composite_key< Lease6ExtendedInfo, boost::multi_index::member< Lease6ExtendedInfo, std::vector< uint8_t >, &Lease6ExtendedInfo::id_ >, boost::multi_index::member< Lease6ExtendedInfo, isc::asiolink::IOAddress, &Lease6ExtendedInfo::lease_addr_ > > >, boost::multi_index::hashed_non_unique< boost::multi_index::tag< LeaseAddressIndexTag >, boost::multi_index::member< Lease6ExtendedInfo, isc::asiolink::IOAddress, &Lease6ExtendedInfo::lease_addr_ > > >> isc::dhcp::Lease6ExtendedInfoRelayIdTable
 A multi index container holding lease6 extended info for by relay id. More...
 
typedef boost::multi_index_container< Lease6ExtendedInfoPtr, boost::multi_index::indexed_by< boost::multi_index::hashed_non_unique< boost::multi_index::tag< RemoteIdIndexTag >, boost::multi_index::member< Lease6ExtendedInfo, std::vector< uint8_t >, &Lease6ExtendedInfo::id_ > >, boost::multi_index::hashed_non_unique< boost::multi_index::tag< LeaseAddressIndexTag >, boost::multi_index::member< Lease6ExtendedInfo, isc::asiolink::IOAddress, &Lease6ExtendedInfo::lease_addr_ > > >> isc::dhcp::Lease6ExtendedInfoRemoteIdTable
 A multi index container holding lease6 extended info for by remote id. More...
 
typedef Lease6ExtendedInfoRelayIdTable::index< RelayIdIndexTag >::type isc::dhcp::RelayIdIndex
 Lease6 extended information by relay id index. More...
 
typedef Lease6ExtendedInfoRelayIdTable::index< LeaseAddressIndexTag >::type isc::dhcp::LeaseAddressRelayIdIndex
 Lease6 extended information by lease address index of by relay id table. More...
 
typedef Lease6ExtendedInfoRemoteIdTable::index< RemoteIdIndexTag >::type isc::dhcp::RemoteIdIndex
 Lease6 extended information by remote id index. More...
 
typedef std::pair< RemoteIdIndex::const_iterator, RemoteIdIndex::const_iterator > isc::dhcp::RemoteIdIndexRange
 Lease6 extended information by remote id range. More...
 
typedef Lease6ExtendedInfoRemoteIdTable::index< LeaseAddressIndexTag >::type isc::dhcp::LeaseAddressRemoteIdIndex
 Lease6 extended information by lease address index of by remote id table. More...