Class SocketConnectable

All Implemented Interfaces:
PointerInterface

public class SocketConnectable extends Interface
Objects that describe one or more potential socket endpoints
implement #GSocketConnectable. Callers can then use
g_socket_connectable_enumerate() to get a #GSocketAddressEnumerator
to try out each socket address in turn until one succeeds, as shown
in the sample code below.
<!-- language="C" -->
 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;
     }
 }
 

https://docs.gtk.org/gio/iface.SocketConnectable.html

  • Constructor Details

  • Method Details

    • getClassHandler

      public static ClassHandler getClassHandler()
    • enumerate

      public SocketAddressEnumerator enumerate()
      Creates a #GSocketAddressEnumerator for @connectable.
      Returns:
      a new #GSocketAddressEnumerator.
    • proxyEnumerate

      public SocketAddressEnumerator proxyEnumerate()
      Creates a #GSocketAddressEnumerator for @connectable that will
      return a #GProxyAddress for each of its addresses that you must connect
      to via a proxy.

      If @connectable does not implement
      g_socket_connectable_proxy_enumerate(), this will fall back to
      calling g_socket_connectable_enumerate().
      Returns:
      a new #GSocketAddressEnumerator.
    • toStr

      public Str toStr()
      Format a #GSocketConnectable 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
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()