Interface Proxy

All Superinterfaces:
Proxy
All Known Implementing Classes:
Proxy.Proxy$Impl

@Generated("org.javagi.JavaGI") public interface Proxy extends Proxy
A GProxy handles connecting to a remote host via a given type of proxy server. It is implemented by the gio-proxy extension point. The extensions are named after their proxy protocol name. As an example, a SOCKS5 proxy implementation can be retrieved with the name socks5 using the function IOExtensionPoint.getExtensionByName(String).
Since:
2.26
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static class 
    The Proxy$Impl type represents a native instance of the Proxy interface.
    static class 
    Provides an interface for handling proxy connection and payload.
  • Method Summary

    Modifier and Type
    Method
    Description
    default IOStream
    connect(IOStream connection, ProxyAddress proxyAddress, @Nullable Cancellable cancellable)
    Given connection to communicate with a proxy (eg, a GSocketConnection that is connected to the proxy server), this does the necessary handshake to connect to proxyAddress, and if required, wraps the GIOStream to handle proxy payload.
    default void
    connectAsync(IOStream connection, ProxyAddress proxyAddress, @Nullable Cancellable cancellable, @Nullable AsyncReadyCallback callback)
    Asynchronous version of g_proxy_connect().
    default IOStream
    See g_proxy_connect().
    static @Nullable Proxy
    Find the gio-proxy extension point for a proxy implementation that supports the specified protocol.
    static @Nullable Type
    Get the GType of the Proxy class.
    default boolean
    Some proxy protocols expect to be passed a hostname, which they will resolve to an IP address themselves.

    Methods inherited from interface Proxy

    handle
  • Method Details

    • getType

      static @Nullable Type getType()
      Get the GType of the Proxy class.
      Returns:
      the GType
    • getDefaultForProtocol

      static @Nullable Proxy getDefaultForProtocol(String protocol)
      Find the gio-proxy extension point for a proxy implementation that supports the specified protocol.
      Parameters:
      protocol - the proxy protocol name (e.g. http, socks, etc)
      Returns:
      return a GProxy or NULL if protocol is not supported.
      Since:
      2.26
    • connect

      default IOStream connect(IOStream connection, ProxyAddress proxyAddress, @Nullable Cancellable cancellable) throws GErrorException
      Given connection to communicate with a proxy (eg, a GSocketConnection that is connected to the proxy server), this does the necessary handshake to connect to proxyAddress, and if required, wraps the GIOStream to handle proxy payload.
      Parameters:
      connection - a GIOStream
      proxyAddress - a GProxyAddress
      cancellable - a GCancellable
      Returns:
      a GIOStream that will replace connection. This might be the same as connection, in which case a reference will be added.
      Throws:
      GErrorException - see GError
      Since:
      2.26
    • connectAsync

      default void connectAsync(IOStream connection, ProxyAddress proxyAddress, @Nullable Cancellable cancellable, @Nullable AsyncReadyCallback callback)
      Asynchronous version of g_proxy_connect().
      Parameters:
      connection - a GIOStream
      proxyAddress - a GProxyAddress
      cancellable - a GCancellable
      callback - a GAsyncReadyCallback
      Since:
      2.26
    • connectFinish

      default IOStream connectFinish(AsyncResult result) throws GErrorException
      See g_proxy_connect().
      Parameters:
      result - a GAsyncResult
      Returns:
      a GIOStream.
      Throws:
      GErrorException - see GError
      Since:
      2.26
    • supportsHostname

      default boolean supportsHostname()
      Some proxy protocols expect to be passed a hostname, which they will resolve to an IP address themselves. Others, like SOCKS4, do not allow this. This function will return false if this Proxy is implementing such a protocol. When false is returned, the caller should resolve the destination hostname first, and then pass a GProxyAddress containing the stringified IP address to g_proxy_connect() or g_proxy_connect_async().
      Returns:
      true if hostname resolution is supported.
      Since:
      2.26