Interface SocketClient.EventCallback

All Superinterfaces:
FunctionPointer
Enclosing class:
SocketClient
Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public static interface SocketClient.EventCallback extends FunctionPointer

Functional interface declaration of the EventCallback callback.

Since:
2.22
See Also:
  • Method Details

    • run

      void run(SocketClientEvent event, @Nullable SocketConnectable connectable, @Nullable IOStream connection)

      Emitted when client's activity on connectable changes state. Among other things, this can be used to provide progress information about a network connection in the UI. The meanings of the different event values are as follows:

      • SocketClientEvent.RESOLVING: client is about to look up connectable in DNS. connection will be null.

      • SocketClientEvent.RESOLVED: client has successfully resolved connectable in DNS. connection will be null.

      • SocketClientEvent.CONNECTING: client is about to make a connection to a remote host; either a proxy server or the destination server itself. connection is the GSocketConnection, which is not yet connected. Since GLib 2.40, you can access the remote address via g_socket_connection_get_remote_address().

      • SocketClientEvent.CONNECTED: client has successfully connected to a remote host. connection is the connected GSocketConnection.

      • SocketClientEvent.PROXY_NEGOTIATING: client is about to negotiate with a proxy to get it to connect to connectable. connection is the GSocketConnection to the proxy server.

      • SocketClientEvent.PROXY_NEGOTIATED: client has negotiated a connection to connectable through a proxy server. connection is the stream returned from g_proxy_connect(), which may or may not be a GSocketConnection.

      • SocketClientEvent.TLS_HANDSHAKING: client is about to begin a TLS handshake. connection is a GTlsClientConnection.

      • SocketClientEvent.TLS_HANDSHAKED: client has successfully completed the TLS handshake. connection is a GTlsClientConnection.

      • SocketClientEvent.COMPLETE: client has either successfully connected to connectable (in which case connection is the GSocketConnection that it will be returning to the caller) or has failed (in which case connection is null and the client is about to return an error).

      Each event except SocketClientEvent.COMPLETE may be emitted multiple times (or not at all) for a given connectable (in particular, if client ends up attempting to connect to more than one address). However, if client emits the GSocketClient::event signal at all for a given connectable, then it will always emit it with SocketClientEvent.COMPLETE when it is done.

      Note that there may be additional GSocketClientEvent values in the future; unrecognized event values should be ignored.

      Since:
      2.32
    • upcall

      default void upcall(MemorySegment sourceSocketClient, int event, MemorySegment connectable, MemorySegment connection)
      The upcall method is called from native code. The parameters are marshaled and run(SocketClientEvent, SocketConnectable, IOStream) is executed.
    • toCallback

      default MemorySegment toCallback(Arena arena)
      Creates a native function pointer to the upcall(MemorySegment, int, MemorySegment, MemorySegment) method.
      Specified by:
      toCallback in interface FunctionPointer
      Parameters:
      arena - the arena in which the function pointer is allocated
      Returns:
      the native function pointer