OpenVPN 3 Core Library
Loading...
Searching...
No Matches
openvpn::IP::AddressSpaceSplitter Class Reference

#include <addrspacesplit.hpp>

Inheritance diagram for openvpn::IP::AddressSpaceSplitter:
[legend]
Collaboration diagram for openvpn::IP::AddressSpaceSplitter:
[legend]

Public Member Functions

 OPENVPN_EXCEPTION (address_space_splitter)
 
 AddressSpaceSplitter ()=default
 
 AddressSpaceSplitter (const RouteList &in)
 
 AddressSpaceSplitter (const RouteList &in, const Addr::VersionMask vermask)
 
- Public Member Functions inherited from openvpn::IP::RouteTypeList< ADDR >
 OPENVPN_EXCEPTION (route_list_error)
 
std::string to_string () const
 
IP::Addr::VersionMask version_mask () const
 
void verify_canonical () const
 
template<typename R >
bool contains (const R &c) const
 

Private Types

enum class  Type { EQUAL , SUBROUTE , LEAF }
 

Private Member Functions

void descend (const RouteList &in, const Route &route)
 

Static Private Member Functions

static Type find (const RouteList &in, const Route &route)
 

Additional Inherited Members

- Public Types inherited from openvpn::IP::RouteTypeList< ADDR >
typedef std::vector< RouteType< ADDR > > Base
 

Detailed Description

Definition at line 21 of file addrspacesplit.hpp.

Member Enumeration Documentation

◆ Type

enum class openvpn::IP::AddressSpaceSplitter::Type
strongprivate
Enumerator
EQUAL 
SUBROUTE 
LEAF 

Definition at line 46 of file addrspacesplit.hpp.

Constructor & Destructor Documentation

◆ AddressSpaceSplitter() [1/3]

openvpn::IP::AddressSpaceSplitter::AddressSpaceSplitter ( )
default

◆ AddressSpaceSplitter() [2/3]

openvpn::IP::AddressSpaceSplitter::AddressSpaceSplitter ( const RouteList in)
inlineexplicit

Definition at line 31 of file addrspacesplit.hpp.

◆ AddressSpaceSplitter() [3/3]

openvpn::IP::AddressSpaceSplitter::AddressSpaceSplitter ( const RouteList in,
const Addr::VersionMask  vermask 
)
inline

Definition at line 36 of file addrspacesplit.hpp.

Member Function Documentation

◆ descend()

void openvpn::IP::AddressSpaceSplitter::descend ( const RouteList in,
const Route route 
)
inlineprivate

This method constructs a non-overlapping list of routes spanning the address space in route. The routes are constructed in a way that each route in the returned list is smaller or equal to each route in parameter in.

Parameters
inExisting routes
routeThe route we currently are looking at and split if it does not meet the requirements

Definition at line 62 of file addrspacesplit.hpp.

Here is the caller graph for this function:

◆ find()

static Type openvpn::IP::AddressSpaceSplitter::find ( const RouteList in,
const Route route 
)
inlinestaticprivate

Definition at line 85 of file addrspacesplit.hpp.

Here is the caller graph for this function:

◆ OPENVPN_EXCEPTION()

openvpn::IP::AddressSpaceSplitter::OPENVPN_EXCEPTION ( address_space_splitter  )

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