Package org.gnome.gio
Interface SocketConnectable
- All Superinterfaces:
Proxy
- All Known Implementing Classes:
InetSocketAddress
,NativeSocketAddress
,NetworkAddress
,NetworkService
,ProxyAddress
,SocketAddress
,SocketAddress.SocketAddressImpl
,SocketConnectable.SocketConnectableImpl
,UnixSocketAddress
Objects that describe one or more potential socket endpoints
implement
GSocketConnectable
. Callers can then use
enumerate()
to get a
SocketAddressEnumerator
to try out each socket address in turn
until one succeeds, as shown in the sample code below.
MyConnectionType *
connect_to_host (const char *hostname,
guint16 port,
GCancellable *cancellable,
GError **error)
{
MyConnection *conn = NULL;
GSocketConnectable *addr;
GSocketAddressEnumerator *enumerator;
GSocketAddress *sockaddr;
GError *conn_error = NULL;
addr = g_network_address_new (hostname, port);
enumerator = g_socket_connectable_enumerate (addr);
g_object_unref (addr);
// Try each sockaddr until we succeed. Record the first connection error,
// but not any further ones (since they'll probably be basically the same
// as the first).
while (!conn && (sockaddr = g_socket_address_enumerator_next (enumerator, cancellable, error))
{
conn = connect_to_sockaddr (sockaddr, conn_error ? NULL : &conn_error);
g_object_unref (sockaddr);
}
g_object_unref (enumerator);
if (conn)
{
if (conn_error)
{
// We couldn't connect to the first address, but we succeeded
// in connecting to a later address.
g_error_free (conn_error);
}
return conn;
}
else if (error)
{
/// Either initial lookup failed, or else the caller cancelled us.
if (conn_error)
g_error_free (conn_error);
return NULL;
}
else
{
g_error_propagate (error, conn_error);
return NULL;
}
}
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic class
Provides an interface for returning aGSocketAddressEnumerator
andGProxyAddressEnumerator
static class
The SocketConnectableImpl type represents a native instance of the SocketConnectable interface. -
Method Summary
Modifier and TypeMethodDescriptiondefault SocketAddressEnumerator
Creates aGSocketAddressEnumerator
for this SocketConnectable.static Type
getType()
Get the GType of the SocketConnectable classdefault SocketAddressEnumerator
Creates aGSocketAddressEnumerator
for this SocketConnectable that will return aGProxyAddress
for each of its addresses that you must connect to via a proxy.default String
Format aGSocketConnectable
as a string.
-
Method Details
-
getType
-
enumerate
Creates aGSocketAddressEnumerator
for this SocketConnectable.- Returns:
- a new
GSocketAddressEnumerator
.
-
proxyEnumerate
Creates aGSocketAddressEnumerator
for this SocketConnectable that will return aGProxyAddress
for each of its addresses that you must connect to via a proxy.If this SocketConnectable does not implement g_socket_connectable_proxy_enumerate(), this will fall back to calling g_socket_connectable_enumerate().
- Returns:
- a new
GSocketAddressEnumerator
.
-
toString_
Format aGSocketConnectable
as a string. This is a human-readable format for use in debugging output, and is not a stable serialization format. It is not suitable for use in user interfaces as it exposes too much information for a user.If the
GSocketConnectable
implementation does not support string formatting, the implementation’s type name will be returned as a fallback.- Returns:
- the formatted string
-