# Gio::SocketAddressEnumerator Class Reference
Portable Network I/O Functionality

Enumerator type for objects that contain or generate SocketAddresses. More...

`#include <giomm/socketaddressenumerator.h>`

Inheritance diagram for Gio::SocketAddressEnumerator:
[legend]

List of all members.

## Public Member Functions

virtual | ~SocketAddressEnumerator ()
GSocketAddressEnumerator* | gobj ()
| Provides access to the underlying C GObject.
const GSocketAddressEnumerator* | gobj () const
| Provides access to the underlying C GObject.
GSocketAddressEnumerator* | gobj_copy ()
| Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
Glib::RefPtr< SocketAddress > | next (const Glib::RefPtr< Cancellable >& cancellable)
| Retrieves the next SocketAddress from enumerator.
Glib::RefPtr< SocketAddress > | next ()
| Retrieves the next SocketAddress from the enumerator.
void | next_async (const Glib::RefPtr< Cancellable >& cancellable, const SlotAsyncReady& slot)
| Asynchronously retrieves the next SocketAddress from the enumerator and then calls slot, which must call next_finish() to get the result.
void | next_async (const SlotAsyncReady& slot)
| Asynchronously retrieves the next SocketAddress from the enumerator and then calls slot, which must call next_finish() to get the result.
Glib::RefPtr< SocketAddress > | next_finish (const Glib::RefPtr< AsyncResult >& result)
| Retrieves the result of a completed call to g_socket_address_enumerator_next_async().

## Related Functions

(Note that these are not member functions.)
Glib::RefPtr < Gio::SocketAddressEnumerator > | wrap (GSocketAddressEnumerator* object, bool take_copy=false)
| A Glib::wrap() method for this object.

## Detailed Description

Enumerator type for objects that contain or generate SocketAddresses.

Since glibmm 2.24:

## Constructor & Destructor Documentation

virtual Gio::SocketAddressEnumerator::~SocketAddressEnumerator | ( |  | ) | `[virtual]`

## Member Function Documentation

GSocketAddressEnumerator* Gio::SocketAddressEnumerator::gobj | ( |  | ) | `[inline]`

Provides access to the underlying C GObject.

Reimplemented from Glib::ObjectBase.

const GSocketAddressEnumerator* Gio::SocketAddressEnumerator::gobj | ( |  | ) | const`[inline]`

Provides access to the underlying C GObject.

Reimplemented from Glib::ObjectBase.

GSocketAddressEnumerator* Gio::SocketAddressEnumerator::gobj_copy | ( |  | ) |

Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.

Glib::RefPtr<SocketAddress> Gio::SocketAddressEnumerator::next | ( | const Glib::RefPtr< Cancellable >& | cancellable | ) |

Retrieves the next SocketAddress from enumerator.

Note that this may block for some amount of time. (Eg, a NetworkAddress may need to do a DNS lookup before it can return an address.) Use g_socket_address_enumerator_next_async() if you need to avoid blocking.

If enumerator is expected to yield addresses, but for some reason is unable to (eg, because of a DNS error), then the first call to g_socket_address_enumerator_next() will return an appropriate error in * error. However, if the first call to g_socket_address_enumerator_next() succeeds, then any further internal errors (other than cancellable being triggered) will be ignored.

Parameters:

  cancellable | Optional Cancellable object, `0` to ignore.

Returns:
  A SocketAddress (owned by the caller), or `0` on error (in which case* error will be set) or if there are no more addresses.

Glib::RefPtr<SocketAddress> Gio::SocketAddressEnumerator::next | ( |  | ) |

Retrieves the next SocketAddress from the enumerator.

Note that this may block for some amount of time. (Eg, a NetworkAddress may need to do a DNS lookup before it can return an address.) Use next_async() if you need to avoid blocking.

If this enumerator is expected to yield addresses, but for some reason is unable to (eg, because of a DNS error), then the first call to next() will throw an exception. However, if the first call to next() succeeds, then any further internal errors will be ignored.

When there are no further addresses, an exception will be thrown.

Returns:
  A SocketAddress

void Gio::SocketAddressEnumerator::next_async | ( | const Glib::RefPtr< Cancellable >& | cancellable,
|  | const SlotAsyncReady & | slot
| ) |  |

Asynchronously retrieves the next SocketAddress from the enumerator and then calls slot, which must call next_finish() to get the result.

Parameters:

  cancellable | A Cancellable object which can be used to cancel the operation.
  slot | A callback slot to call after the resolution completes.

void Gio::SocketAddressEnumerator::next_async | ( | const SlotAsyncReady & | slot | ) |

Asynchronously retrieves the next SocketAddress from the enumerator and then calls slot, which must call next_finish() to get the result.

Parameters:

  slot | A callback slot to call after the resolution completes.

Glib::RefPtr<SocketAddress> Gio::SocketAddressEnumerator::next_finish | ( | const Glib::RefPtr< AsyncResult >& | result | ) |

Retrieves the result of a completed call to g_socket_address_enumerator_next_async().

See g_socket_address_enumerator_next() for more information about error handling.

Parameters:

  result | A AsyncResult.

Returns:
  A SocketAddress (owned by the caller), or `0` on error (in which case* error will be set) or if there are no more addresses.

## Friends And Related Function Documentation

Glib::RefPtr< Gio::SocketAddressEnumerator > wrap | ( | GSocketAddressEnumerator * | object,
|  | bool | take_copy = `false`
| ) |  | `[related]`

A Glib::wrap() method for this object.

Parameters:

  object | The C instance.
  take_copy | False if the result should take ownership of the C instance. True if it should take a new copy or ref.

Returns:
  A C++ instance that wraps this C instance.