rippled
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Private Attributes | List of all members
ripple::ResolverAsioImpl Class Reference
Inheritance diagram for ripple::ResolverAsioImpl:
Inheritance graph
[legend]
Collaboration diagram for ripple::ResolverAsioImpl:
Collaboration graph
[legend]

Classes

struct  Work
 

Public Types

using HostAndPort = std::pair< std::string, std::string >
 
using HandlerType = std::function< void(std::string, std::vector< beast::IP::Endpoint >)>
 

Public Member Functions

 ResolverAsioImpl (boost::asio::io_context &io_context, beast::Journal journal)
 
 ~ResolverAsioImpl () override
 
void asyncHandlersComplete ()
 
void start () override
 Issue a synchronous start request.
 
void stop_async () override
 Issue an asynchronous stop request.
 
void stop () override
 Issue a synchronous stop request.
 
void resolve (std::vector< std::string > const &names, HandlerType const &handler) override
 
void do_stop (CompletionCounter)
 
void do_finish (std::string name, boost::system::error_code const &ec, HandlerType handler, boost::asio::ip::tcp::resolver::results_type results, CompletionCounter)
 
HostAndPort parseName (std::string const &str)
 
void do_work (CompletionCounter)
 
void do_resolve (std::vector< std::string > const &names, HandlerType const &handler, CompletionCounter)
 
void addReference ()
 
void removeReference ()
 
template<class Handler >
void resolve (std::vector< std::string > const &names, Handler handler)
 resolve all hostnames on the list
 

Static Public Member Functions

static std::unique_ptr< ResolverAsioNew (boost::asio::io_context &, beast::Journal)
 

Public Attributes

beast::Journal m_journal
 
boost::asio::io_context & m_io_context
 
boost::asio::strand< boost::asio::io_context::executor_type > m_strand
 
boost::asio::ip::tcp::resolver m_resolver
 
std::condition_variable m_cv
 
std::mutex m_mut
 
bool m_asyncHandlersCompleted
 
std::atomic< bool > m_stop_called
 
std::atomic< bool > m_stopped
 
std::deque< Workm_work
 

Private Attributes

std::atomic< int > m_pending
 

Detailed Description

Definition at line 120 of file ResolverAsio.cpp.

Member Typedef Documentation

◆ HostAndPort

Definition at line 124 of file ResolverAsio.cpp.

◆ HandlerType

Definition at line 33 of file Resolver.h.

Constructor & Destructor Documentation

◆ ResolverAsioImpl()

ripple::ResolverAsioImpl::ResolverAsioImpl ( boost::asio::io_context &  io_context,
beast::Journal  journal 
)

Definition at line 158 of file ResolverAsio.cpp.

◆ ~ResolverAsioImpl()

ripple::ResolverAsioImpl::~ResolverAsioImpl ( )
override

Definition at line 171 of file ResolverAsio.cpp.

Member Function Documentation

◆ asyncHandlersComplete()

void ripple::ResolverAsioImpl::asyncHandlersComplete ( )

Definition at line 183 of file ResolverAsio.cpp.

◆ start()

void ripple::ResolverAsioImpl::start ( )
overridevirtual

Issue a synchronous start request.

Implements ripple::Resolver.

Definition at line 197 of file ResolverAsio.cpp.

◆ stop_async()

void ripple::ResolverAsioImpl::stop_async ( )
overridevirtual

Issue an asynchronous stop request.

Implements ripple::Resolver.

Definition at line 216 of file ResolverAsio.cpp.

◆ stop()

void ripple::ResolverAsioImpl::stop ( )
overridevirtual

Issue a synchronous stop request.

Implements ripple::Resolver.

Definition at line 234 of file ResolverAsio.cpp.

◆ resolve() [1/2]

void ripple::ResolverAsioImpl::resolve ( std::vector< std::string > const &  names,
HandlerType const &  handler 
)
overridevirtual

Implements ripple::Resolver.

Definition at line 246 of file ResolverAsio.cpp.

◆ do_stop()

void ripple::ResolverAsioImpl::do_stop ( CompletionCounter  )

Definition at line 273 of file ResolverAsio.cpp.

◆ do_finish()

void ripple::ResolverAsioImpl::do_finish ( std::string  name,
boost::system::error_code const &  ec,
HandlerType  handler,
boost::asio::ip::tcp::resolver::results_type  results,
CompletionCounter   
)

Definition at line 289 of file ResolverAsio.cpp.

◆ parseName()

HostAndPort ripple::ResolverAsioImpl::parseName ( std::string const &  str)

Definition at line 327 of file ResolverAsio.cpp.

◆ do_work()

void ripple::ResolverAsioImpl::do_work ( CompletionCounter  )

Definition at line 381 of file ResolverAsio.cpp.

◆ do_resolve()

void ripple::ResolverAsioImpl::do_resolve ( std::vector< std::string > const &  names,
HandlerType const &  handler,
CompletionCounter   
)

Definition at line 430 of file ResolverAsio.cpp.

◆ New()

std::unique_ptr< ResolverAsio > ripple::ResolverAsio::New ( boost::asio::io_context &  io_context,
beast::Journal  journal 
)
staticinherited

Definition at line 465 of file ResolverAsio.cpp.

◆ resolve() [2/2]

template<class Handler >
void ripple::Resolver::resolve ( std::vector< std::string > const &  names,
Handler  handler 
)
inherited

resolve all hostnames on the list

Parameters
namesthe names to be resolved
handlerthe handler to call

Definition at line 57 of file Resolver.h.

◆ addReference()

void ripple::AsyncObject< ResolverAsioImpl >::addReference ( )
inherited

Definition at line 103 of file ResolverAsio.cpp.

◆ removeReference()

void ripple::AsyncObject< ResolverAsioImpl >::removeReference ( )
inherited

Definition at line 109 of file ResolverAsio.cpp.

Member Data Documentation

◆ m_journal

beast::Journal ripple::ResolverAsioImpl::m_journal

Definition at line 126 of file ResolverAsio.cpp.

◆ m_io_context

boost::asio::io_context& ripple::ResolverAsioImpl::m_io_context

Definition at line 128 of file ResolverAsio.cpp.

◆ m_strand

boost::asio::strand<boost::asio::io_context::executor_type> ripple::ResolverAsioImpl::m_strand

Definition at line 129 of file ResolverAsio.cpp.

◆ m_resolver

boost::asio::ip::tcp::resolver ripple::ResolverAsioImpl::m_resolver

Definition at line 130 of file ResolverAsio.cpp.

◆ m_cv

std::condition_variable ripple::ResolverAsioImpl::m_cv

Definition at line 132 of file ResolverAsio.cpp.

◆ m_mut

std::mutex ripple::ResolverAsioImpl::m_mut

Definition at line 133 of file ResolverAsio.cpp.

◆ m_asyncHandlersCompleted

bool ripple::ResolverAsioImpl::m_asyncHandlersCompleted

Definition at line 134 of file ResolverAsio.cpp.

◆ m_stop_called

std::atomic<bool> ripple::ResolverAsioImpl::m_stop_called

Definition at line 136 of file ResolverAsio.cpp.

◆ m_stopped

std::atomic<bool> ripple::ResolverAsioImpl::m_stopped

Definition at line 137 of file ResolverAsio.cpp.

◆ m_work

std::deque<Work> ripple::ResolverAsioImpl::m_work

Definition at line 156 of file ResolverAsio.cpp.

◆ m_pending

std::atomic<int> ripple::AsyncObject< ResolverAsioImpl >::m_pending
privateinherited

Definition at line 117 of file ResolverAsio.cpp.