Top |
GSocketAddressEnumerator is an enumerator type for GSocketAddress
instances. It is returned by enumeration functions such as
g_socket_connectable_enumerate()
, which returns a GSocketAddressEnumerator
to list each GSocketAddress which could be used to connect to that
GSocketConnectable.
Enumeration is typically a blocking operation, so the asynchronous methods
g_socket_address_enumerator_next_async()
and
g_socket_address_enumerator_next_finish()
should be used where possible.
Each GSocketAddressEnumerator can only be enumerated once. Once
g_socket_address_enumerator_next()
has returned NULL
, further
enumeration with that GSocketAddressEnumerator is not possible, and it can
be unreffed.
GSocketAddress * g_socket_address_enumerator_next (GSocketAddressEnumerator *enumerator
,GCancellable *cancellable
,GError **error
);
Retrieves the next GSocketAddress from enumerator
. Note that this
may block for some amount of time. (Eg, a GNetworkAddress 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.
enumerator |
||
cancellable |
optional GCancellable object, |
[nullable] |
error |
a GError. |
a GSocketAddress (owned by the caller), or NULL
on
error (in which case *error
will be set) or if there are no
more addresses.
[transfer full]
void g_socket_address_enumerator_next_async (GSocketAddressEnumerator *enumerator
,GCancellable *cancellable
,GAsyncReadyCallback callback
,gpointer user_data
);
Asynchronously retrieves the next GSocketAddress from enumerator
and then calls callback
, which must call
g_socket_address_enumerator_next_finish()
to get the result.
It is an error to call this multiple times before the previous callback has finished.
enumerator |
||
cancellable |
optional GCancellable object, |
[nullable] |
callback |
a GAsyncReadyCallback to call when the request is satisfied. |
[scope async] |
user_data |
the data to pass to callback function. |
[closure] |
GSocketAddress * g_socket_address_enumerator_next_finish (GSocketAddressEnumerator *enumerator
,GAsyncResult *result
,GError **error
);
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.
a GSocketAddress (owned by the caller), or NULL
on
error (in which case *error
will be set) or if there are no
more addresses.
[transfer full]
typedef struct _GSocketAddressEnumerator GSocketAddressEnumerator;
Enumerator type for objects that contain or generate GSocketAddress instances.
struct GSocketAddressEnumeratorClass { /* Virtual Table */ GSocketAddress * (* next) (GSocketAddressEnumerator *enumerator, GCancellable *cancellable, GError **error); void (* next_async) (GSocketAddressEnumerator *enumerator, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); GSocketAddress * (* next_finish) (GSocketAddressEnumerator *enumerator, GAsyncResult *result, GError **error); };
Class structure for GSocketAddressEnumerator.
Virtual method for |
||
Virtual method for |
||
Virtual method for |