OpenSDN source code
GlobalVrouter::FabricDnsResolver Class Reference
Collaboration diagram for GlobalVrouter::FabricDnsResolver:

Public Types

typedef boost::asio::ip::udp boost_udp
 

Public Member Functions

 FabricDnsResolver (GlobalVrouter *vrouter, boost::asio::io_service &io)
 
virtual ~FabricDnsResolver ()
 
void ResolveList (const std::vector< std::string > &name_list)
 
bool Resolve (const std::string &name, Ip4Address *address)
 
bool OnTimeout ()
 
bool IsAddressInUse (const Ip4Address &ip)
 
uint64_t PendingRequests () const
 

Static Public Attributes

static const uint32_t kDnsTimeout = 15 * 60 * 1000
 

Private Types

typedef std::map< std::string, std::vector< Ip4Address > > ResolveMap
 
typedef std::pair< std::string, std::vector< Ip4Address > > ResolvePair
 

Private Member Functions

void ResolveName (const std::string &name)
 
void ResolveHandler (const boost::system::error_code &error, boost_udp::resolver::iterator resolve_it, std::string &name, boost_udp::resolver *resolver)
 

Private Attributes

Timertimer_
 
tbb::mutex mutex_
 
ResolveMap address_map_
 
uint64_t request_count_
 
uint64_t response_count_
 
GlobalVrouterglobal_vrouter_
 
boost::asio::io_service & io_
 

Detailed Description

Definition at line 259 of file global_vrouter.cc.

Member Typedef Documentation

◆ boost_udp

typedef boost::asio::ip::udp GlobalVrouter::FabricDnsResolver::boost_udp

Definition at line 261 of file global_vrouter.cc.

◆ ResolveMap

typedef std::map<std::string, std::vector<Ip4Address> > GlobalVrouter::FabricDnsResolver::ResolveMap
private

Definition at line 338 of file global_vrouter.cc.

◆ ResolvePair

typedef std::pair<std::string, std::vector<Ip4Address> > GlobalVrouter::FabricDnsResolver::ResolvePair
private

Definition at line 339 of file global_vrouter.cc.

Constructor & Destructor Documentation

◆ FabricDnsResolver()

GlobalVrouter::FabricDnsResolver::FabricDnsResolver ( GlobalVrouter vrouter,
boost::asio::io_service &  io 
)
inline

Definition at line 264 of file global_vrouter.cc.

Here is the call graph for this function:

◆ ~FabricDnsResolver()

virtual GlobalVrouter::FabricDnsResolver::~FabricDnsResolver ( )
inlinevirtual

Definition at line 272 of file global_vrouter.cc.

Here is the call graph for this function:

Member Function Documentation

◆ IsAddressInUse()

bool GlobalVrouter::FabricDnsResolver::IsAddressInUse ( const Ip4Address ip)
inline

Definition at line 321 of file global_vrouter.cc.

◆ OnTimeout()

bool GlobalVrouter::FabricDnsResolver::OnTimeout ( )
inline

Definition at line 311 of file global_vrouter.cc.

Here is the call graph for this function:

◆ PendingRequests()

uint64_t GlobalVrouter::FabricDnsResolver::PendingRequests ( ) const
inline

Definition at line 333 of file global_vrouter.cc.

◆ Resolve()

bool GlobalVrouter::FabricDnsResolver::Resolve ( const std::string &  name,
Ip4Address address 
)
inline

Definition at line 296 of file global_vrouter.cc.

Here is the call graph for this function:

◆ ResolveHandler()

void GlobalVrouter::FabricDnsResolver::ResolveHandler ( const boost::system::error_code &  error,
boost_udp::resolver::iterator  resolve_it,
std::string &  name,
boost_udp::resolver *  resolver 
)
inlineprivate

Definition at line 352 of file global_vrouter.cc.

Here is the call graph for this function:

◆ ResolveList()

void GlobalVrouter::FabricDnsResolver::ResolveList ( const std::vector< std::string > &  name_list)
inline

Definition at line 278 of file global_vrouter.cc.

Here is the call graph for this function:

◆ ResolveName()

void GlobalVrouter::FabricDnsResolver::ResolveName ( const std::string &  name)
inlineprivate

Definition at line 341 of file global_vrouter.cc.

Here is the call graph for this function:

Member Data Documentation

◆ address_map_

ResolveMap GlobalVrouter::FabricDnsResolver::address_map_
private

Definition at line 377 of file global_vrouter.cc.

◆ global_vrouter_

GlobalVrouter* GlobalVrouter::FabricDnsResolver::global_vrouter_
private

Definition at line 380 of file global_vrouter.cc.

◆ io_

boost::asio::io_service& GlobalVrouter::FabricDnsResolver::io_
private

Definition at line 381 of file global_vrouter.cc.

◆ kDnsTimeout

const uint32_t GlobalVrouter::FabricDnsResolver::kDnsTimeout = 15 * 60 * 1000
static

Definition at line 262 of file global_vrouter.cc.

◆ mutex_

tbb::mutex GlobalVrouter::FabricDnsResolver::mutex_
private

Definition at line 376 of file global_vrouter.cc.

◆ request_count_

uint64_t GlobalVrouter::FabricDnsResolver::request_count_
private

Definition at line 378 of file global_vrouter.cc.

◆ response_count_

uint64_t GlobalVrouter::FabricDnsResolver::response_count_
private

Definition at line 379 of file global_vrouter.cc.

◆ timer_

Timer* GlobalVrouter::FabricDnsResolver::timer_
private

Definition at line 375 of file global_vrouter.cc.


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