A pimple-pattern implementation class for GNet::Resolver. More...
Public Member Functions | |
ResolverImp (EventHandler &event_handler, Resolver &resolver, unsigned int port) | |
virtual | ~ResolverImp () |
bool | resolveReq (std::string host_part, std::string service_part, bool udp) |
bool | busy () const |
Public Member Functions inherited from GNet::SimpleClient | |
SimpleClient (const ResolverInfo &remote_info, const Address &local_address=Address(0U), bool privileged=false, bool sync_dns=synchronousDnsDefault(), unsigned int secure_connection_timeout=0U) | |
Constructor. More... | |
void | connect () |
Initates a connection to the remote server. More... | |
bool | connected () const |
Returns true if connected to the peer. More... | |
virtual std::pair< bool, Address > | localAddress () const |
Override from Connection. More... | |
virtual std::pair< bool, Address > | peerAddress () const |
Override from Connection. More... | |
virtual std::string | peerCertificate () const |
Returns the peer's TLS certificate. More... | |
ResolverInfo | resolverInfo () const |
Returns a ResolverInfo structure containing the result of host() and service() name lookup if available. More... | |
void | updateResolverInfo (const ResolverInfo &) |
Updates the constructor's ResolverInfo object with the given one as long as both objects have the same host and service name. More... | |
virtual void | readEvent () |
Final override from GNet::EventHandler. More... | |
virtual void | writeEvent () |
Final override from GNet::EventHandler. More... | |
bool | send (const std::string &data, std::string::size_type offset=0) |
Returns true if all sent, or false if flow control was asserted. More... | |
Public Member Functions inherited from GNet::EventHandler | |
virtual | ~EventHandler () |
Destructor. More... | |
virtual void | exceptionEvent () |
Called for an exception event. More... | |
Public Member Functions inherited from GNet::Connection | |
virtual | ~Connection () |
Destructor. More... | |
Public Member Functions inherited from GNet::SocketProtocolSink | |
virtual | ~SocketProtocolSink () |
Destructor. More... | |
Protected Member Functions | |
virtual void | onConnect () |
Called once connected. More... | |
virtual void | onSendComplete () |
Called when all residual data from send() has been sent. More... | |
virtual void | onData (const char *, std::string::size_type) |
Called when data is read from the socket. More... | |
virtual void | onSecure (const std::string &) |
Called once the secure socket protocol has been successfully negotiated. More... | |
virtual void | onException (std::exception &) |
Called when an exception is thrown out of readEvent(), writeEvent() or exceptionEvent(). More... | |
Protected Member Functions inherited from GNet::SimpleClient | |
virtual | ~SimpleClient () |
Destructor. More... | |
StreamSocket & | socket () |
Returns a reference to the socket. Throws if not connected. More... | |
const StreamSocket & | socket () const |
Returns a const reference to the socket. Throws if not connected. More... | |
virtual void | onConnectImp () |
An alternative to onConnect() for private implementation classes. More... | |
virtual void | onSendImp () |
Called from within send(). More... | |
void | sslConnect () |
Starts TLS/SSL client-side negotiation. More... | |
std::string | logId () const |
Returns a identification string for logging purposes. More... | |
Additional Inherited Members | |
Public Types inherited from GNet::SimpleClient | |
enum | ConnectStatus { Success, Failure, Retry, ImmediateSuccess } |
enum | State { Idle, Resolving, Connecting, Connected, Socksing } |
typedef std::string::size_type | size_type |
Static Public Member Functions inherited from GNet::SimpleClient | |
static bool | synchronousDnsDefault () |
Returns true if DNS queries should normally be synchronous on this platform. More... | |
Static Protected Member Functions inherited from GNet::SimpleClient | |
static bool | canRetry (const std::string &reason) |
Parses the given failure reason and returns true if the client can reasonably retry at some later time. More... | |
A pimple-pattern implementation class for GNet::Resolver.
Note that the implementation uses GNet::SimpleClient even though GNet::SimpleClient uses a resolver. This is possible because this class passes a fully-resolved ResolverInfo object to the client and the client class only instantiates a resolver when necessary.
Definition at line 49 of file gresolver_unix.cpp.
GNet::ResolverImp::ResolverImp | ( | EventHandler & | event_handler, |
Resolver & | resolver, | ||
unsigned int | port | ||
) |
Definition at line 85 of file gresolver_unix.cpp.
|
virtual |
Definition at line 92 of file gresolver_unix.cpp.
bool GNet::ResolverImp::busy | ( | ) | const |
Definition at line 171 of file gresolver_unix.cpp.
|
protectedvirtual |
Called once connected.
May (unfortunately) be called from within connect().
Implements GNet::SimpleClient.
Definition at line 117 of file gresolver_unix.cpp.
|
protectedvirtual |
Called when data is read from the socket.
Implements GNet::SocketProtocolSink.
Definition at line 131 of file gresolver_unix.cpp.
References G_DEBUG, GNet::Address::invalidAddress(), G::Str::isPrintableAscii(), G::Str::trim(), and GNet::Address::validString().
|
protectedvirtual |
Called when an exception is thrown out of readEvent(), writeEvent() or exceptionEvent().
The implementation may just do a "throw" to throw the current exception out of the event loop, or a "delete this" for objects that manage themselves on the heap.
EventHandler objects or timer objects that are sub-objects of other EventHandler objects will normally have their implementation of onException() or onTimeoutException() delgate to the outer object's onException().
Implements GNet::EventHandler.
Definition at line 158 of file gresolver_unix.cpp.
References GNet::Address::invalidAddress().
|
protectedvirtual |
Called once the secure socket protocol has been successfully negotiated.
Implements GNet::SocketProtocolSink.
Definition at line 127 of file gresolver_unix.cpp.
|
protectedvirtual |
Called when all residual data from send() has been sent.
Implements GNet::SimpleClient.
Definition at line 123 of file gresolver_unix.cpp.
bool GNet::ResolverImp::resolveReq | ( | std::string | host_part, |
std::string | service_part, | ||
bool | udp | ||
) |
Definition at line 103 of file gresolver_unix.cpp.