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 >:

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_service & | io_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