OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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 240 of file global_vrouter.cc.

Member Typedef Documentation

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

Definition at line 242 of file global_vrouter.cc.

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

Definition at line 319 of file global_vrouter.cc.

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

Definition at line 320 of file global_vrouter.cc.

Constructor & Destructor Documentation

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

Definition at line 245 of file global_vrouter.cc.

Here is the call graph for this function:

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

Definition at line 253 of file global_vrouter.cc.

Here is the call graph for this function:

Member Function Documentation

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

Definition at line 302 of file global_vrouter.cc.

bool GlobalVrouter::FabricDnsResolver::OnTimeout ( )
inline

Definition at line 292 of file global_vrouter.cc.

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

Definition at line 314 of file global_vrouter.cc.

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

Definition at line 277 of file global_vrouter.cc.

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 333 of file global_vrouter.cc.

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

Definition at line 259 of file global_vrouter.cc.

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

Definition at line 322 of file global_vrouter.cc.

Here is the call graph for this function:

Member Data Documentation

ResolveMap GlobalVrouter::FabricDnsResolver::address_map_
private

Definition at line 358 of file global_vrouter.cc.

GlobalVrouter* GlobalVrouter::FabricDnsResolver::global_vrouter_
private

Definition at line 361 of file global_vrouter.cc.

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

Definition at line 362 of file global_vrouter.cc.

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

Definition at line 243 of file global_vrouter.cc.

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

Definition at line 357 of file global_vrouter.cc.

uint64_t GlobalVrouter::FabricDnsResolver::request_count_
private

Definition at line 359 of file global_vrouter.cc.

uint64_t GlobalVrouter::FabricDnsResolver::response_count_
private

Definition at line 360 of file global_vrouter.cc.

Timer* GlobalVrouter::FabricDnsResolver::timer_
private

Definition at line 356 of file global_vrouter.cc.


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