asio 0.3.8rc3 Home | Reference | Tutorial | Examples | Design
Reference Class Hierarchy | Class Index | Member Index

asio::ip::basic_resolver< InternetProtocol, ResolverService > Class Template Reference

Inherits asio::basic_io_object< ResolverService >.

Inheritance diagram for asio::ip::basic_resolver< InternetProtocol, ResolverService >:

Inheritance graph
List of all members.

Detailed Description

template<typename InternetProtocol, typename ResolverService = resolver_service<InternetProtocol>>
class asio::ip::basic_resolver< InternetProtocol, ResolverService >

Provides endpoint resolution functionality.

The basic_resolver class template provides the ability to resolve a query to a list of endpoints.

Thread Safety
Distinct objects: Safe.
Shared objects: Unsafe.


Public Types

typedef InternetProtocol protocol_type
 The protocol type.
typedef InternetProtocol::endpoint endpoint_type
 The endpoint type.
typedef InternetProtocol::resolver_query query
 The query type.
typedef InternetProtocol::resolver_iterator iterator
 The iterator type.
typedef ResolverService service_type
 The type of the service that will be used to provide I/O operations.
typedef service_type::implementation_type implementation_type
 The underlying implementation type of I/O object.

Public Member Functions

 basic_resolver (asio::io_service &io_service)
 Constructor.
void cancel ()
 Cancel any asynchronous operations that are waiting on the resolver.
iterator resolve (const query &q)
 Resolve a query to a list of entries.
iterator resolve (const query &q, asio::error_code &ec)
 Resolve a query to a list of entries.
template<typename ResolveHandler>
void async_resolve (const query &q, ResolveHandler handler)
 Asynchronously resolve a query to a list of entries.
iterator resolve (const endpoint_type &e)
 Resolve an endpoint to a list of entries.
iterator resolve (const endpoint_type &e, asio::error_code &ec)
 Resolve an endpoint to a list of entries.
template<typename ResolveHandler>
void async_resolve (const endpoint_type &e, ResolveHandler handler)
 Asynchronously resolve an endpoint to a list of entries.
asio::io_serviceio_service ()
 Get the io_service associated with the object.


Member Typedef Documentation

template<typename InternetProtocol, typename ResolverService = resolver_service<InternetProtocol>>
typedef InternetProtocol asio::ip::basic_resolver< InternetProtocol, ResolverService >::protocol_type

The protocol type.

template<typename InternetProtocol, typename ResolverService = resolver_service<InternetProtocol>>
typedef InternetProtocol::endpoint asio::ip::basic_resolver< InternetProtocol, ResolverService >::endpoint_type

The endpoint type.

template<typename InternetProtocol, typename ResolverService = resolver_service<InternetProtocol>>
typedef InternetProtocol::resolver_query asio::ip::basic_resolver< InternetProtocol, ResolverService >::query

The query type.

template<typename InternetProtocol, typename ResolverService = resolver_service<InternetProtocol>>
typedef InternetProtocol::resolver_iterator asio::ip::basic_resolver< InternetProtocol, ResolverService >::iterator

The iterator type.

typedef ResolverService asio::basic_io_object< ResolverService >::service_type [inherited]

The type of the service that will be used to provide I/O operations.

typedef service_type::implementation_type asio::basic_io_object< ResolverService >::implementation_type [inherited]

The underlying implementation type of I/O object.


Constructor & Destructor Documentation

template<typename InternetProtocol, typename ResolverService = resolver_service<InternetProtocol>>
asio::ip::basic_resolver< InternetProtocol, ResolverService >::basic_resolver ( asio::io_service io_service  )  [explicit]

Constructor.

This constructor creates a basic_resolver.

Parameters:
io_service The io_service object that the resolver will use to dispatch handlers for any asynchronous operations performed on the timer.


Member Function Documentation

template<typename InternetProtocol, typename ResolverService = resolver_service<InternetProtocol>>
void asio::ip::basic_resolver< InternetProtocol, ResolverService >::cancel (  ) 

Cancel any asynchronous operations that are waiting on the resolver.

This function forces the completion of any pending asynchronous operations on the host resolver. The handler for each cancelled operation will be invoked with the asio::error::operation_aborted error code.

template<typename InternetProtocol, typename ResolverService = resolver_service<InternetProtocol>>
iterator asio::ip::basic_resolver< InternetProtocol, ResolverService >::resolve ( const query q  ) 

Resolve a query to a list of entries.

This function is used to resolve a query into a list of endpoint entries.

Parameters:
q A query object that determines what endpoints will be returned.
Returns:
A forward-only iterator that can be used to traverse the list of endpoint entries.
Exceptions:
asio::system_error Thrown on failure.
Note:
A default constructed iterator represents the end of the list.
A successful call to this function is guaranteed to return at least one entry.

template<typename InternetProtocol, typename ResolverService = resolver_service<InternetProtocol>>
iterator asio::ip::basic_resolver< InternetProtocol, ResolverService >::resolve ( const query q,
asio::error_code ec 
)

Resolve a query to a list of entries.

This function is used to resolve a query into a list of endpoint entries.

Parameters:
q A query object that determines what endpoints will be returned.
ec Set to indicate what error occurred, if any.
Returns:
A forward-only iterator that can be used to traverse the list of endpoint entries. Returns a default constructed iterator if an error occurs.
Note:
A default constructed iterator represents the end of the list.
A successful call to this function is guaranteed to return at least one entry.

template<typename InternetProtocol, typename ResolverService = resolver_service<InternetProtocol>>
template<typename ResolveHandler>
void asio::ip::basic_resolver< InternetProtocol, ResolverService >::async_resolve ( const query q,
ResolveHandler  handler 
)

Asynchronously resolve a query to a list of entries.

This function is used to asynchronously resolve a query into a list of endpoint entries.

Parameters:
q A query object that determines what endpoints will be returned.
handler The handler to be called when the resolve operation completes. Copies will be made of the handler as required. The function signature of the handler must be:
 void handler(
   const asio::error_code& error, // Result of operation.
   resolver::iterator iterator             // Forward-only iterator that can
                                           // be used to traverse the list
                                           // of endpoint entries.
 ); 
Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using asio::io_service::post().
Note:
A default constructed iterator represents the end of the list.
A successful resolve operation is guaranteed to pass at least one entry to the handler.

template<typename InternetProtocol, typename ResolverService = resolver_service<InternetProtocol>>
iterator asio::ip::basic_resolver< InternetProtocol, ResolverService >::resolve ( const endpoint_type e  ) 

Resolve an endpoint to a list of entries.

This function is used to resolve an endpoint into a list of endpoint entries.

Parameters:
e An endpoint object that determines what endpoints will be returned.
Returns:
A forward-only iterator that can be used to traverse the list of endpoint entries.
Exceptions:
asio::system_error Thrown on failure.
Note:
A default constructed iterator represents the end of the list.
A successful call to this function is guaranteed to return at least one entry.

template<typename InternetProtocol, typename ResolverService = resolver_service<InternetProtocol>>
iterator asio::ip::basic_resolver< InternetProtocol, ResolverService >::resolve ( const endpoint_type e,
asio::error_code ec 
)

Resolve an endpoint to a list of entries.

This function is used to resolve an endpoint into a list of endpoint entries.

Parameters:
e An endpoint object that determines what endpoints will be returned.
ec Set to indicate what error occurred, if any.
Returns:
A forward-only iterator that can be used to traverse the list of endpoint entries. Returns a default constructed iterator if an error occurs.
Note:
A default constructed iterator represents the end of the list.
A successful call to this function is guaranteed to return at least one entry.

template<typename InternetProtocol, typename ResolverService = resolver_service<InternetProtocol>>
template<typename ResolveHandler>
void asio::ip::basic_resolver< InternetProtocol, ResolverService >::async_resolve ( const endpoint_type e,
ResolveHandler  handler 
)

Asynchronously resolve an endpoint to a list of entries.

This function is used to asynchronously resolve an endpoint into a list of endpoint entries.

Parameters:
e An endpoint object that determines what endpoints will be returned.
handler The handler to be called when the resolve operation completes. Copies will be made of the handler as required. The function signature of the handler must be:
 void handler(
   const asio::error_code& error, // Result of operation.
   resolver::iterator iterator             // Forward-only iterator that can
                                           // be used to traverse the list
                                           // of endpoint entries.
 ); 
Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using asio::io_service::post().
Note:
A default constructed iterator represents the end of the list.
A successful resolve operation is guaranteed to pass at least one entry to the handler.

asio::io_service& asio::basic_io_object< ResolverService >::io_service (  )  [inherited]

Get the io_service associated with the object.

This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.

Returns:
A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.

asio 0.3.8rc3 Home | Reference | Tutorial | Examples | Design