Class SrvTarget

All Implemented Interfaces:
Proxy

@Generated("org.javagi.JavaGI") public class SrvTarget extends ProxyInstance

A single target host/port that a network service is running on.

SRV (service) records are used by some network protocols to provide service-specific aliasing and load-balancing. For example, XMPP (Jabber) uses SRV records to locate the XMPP server for a domain; rather than connecting directly to ‘example.com’ or assuming a specific server hostname like ‘xmpp.example.com’, an XMPP client would look up the xmpp-client SRV record for ‘example.com’, and then connect to whatever host was pointed to by that record.

You can use Resolver.lookupService(String, String, String, Cancellable) or Resolver.lookupServiceAsync(String, String, String, Cancellable, AsyncReadyCallback) to find the GSrvTargets for a given service. However, if you are simply planning to connect to the remote service, you can use NetworkService’s SocketConnectable interface and not need to worry about GSrvTarget at all.

  • Constructor Details

    • SrvTarget

      public SrvTarget(MemorySegment address)
      Create a SrvTarget proxy instance for the provided memory address.
      Parameters:
      address - the memory address of the native object
    • SrvTarget

      public SrvTarget(String hostname, short port, short priority, short weight)

      Creates a new GSrvTarget with the given parameters.

      You should not need to use this; normally GSrvTargets are created by GResolver.

      Parameters:
      hostname - the host that the service is running on
      port - the port that the service is running on
      priority - the target's priority
      weight - the target's weight
      Since:
      2.22
  • Method Details

    • getType

      public static @Nullable Type getType()
      Get the GType of the SrvTarget class.
      Returns:
      the GType
    • getMemoryLayout

      public static MemoryLayout getMemoryLayout()
      The memory layout of the native struct.
      Returns:
      the memory layout
    • listSort

      public static List<MemorySegment> listSort(List<MemorySegment> targets)
      Sorts targets in place according to the algorithm in RFC 2782.
      Parameters:
      targets - a GList of GSrvTarget
      Returns:
      the head of the sorted list.
      Since:
      2.22
    • copy

      public SrvTarget copy()
      Copies this SrvTarget
      Returns:
      a copy of this SrvTarget
      Since:
      2.22
    • free

      public void free()
      Frees this SrvTarget
      Since:
      2.22
    • getHostname

      public String getHostname()
      Gets target's hostname (in ASCII form; if you are going to present this to the user, you should use g_hostname_is_ascii_encoded() to check if it contains encoded Unicode segments, and use g_hostname_to_unicode() to convert it if it does.)
      Returns:
      target's hostname
      Since:
      2.22
    • getPort

      public short getPort()
      Gets target's port
      Returns:
      target's port
      Since:
      2.22
    • getPriority

      public short getPriority()
      Gets target's priority. You should not need to look at this; GResolver already sorts the targets according to the algorithm in RFC 2782.
      Returns:
      target's priority
      Since:
      2.22
    • getWeight

      public short getWeight()
      Gets target's weight. You should not need to look at this; GResolver already sorts the targets according to the algorithm in RFC 2782.
      Returns:
      target's weight
      Since:
      2.22