Klasse SocketControlMessage

Alle implementierten Schnittstellen:
PointerInterface
Bekannte direkte Unterklassen:
UnixCredentialsMessage, UnixFDMessage

public class SocketControlMessage extends PropertyHolder
A `GSocketControlMessage` is a special-purpose utility message that
can be sent to or received from a [class@Gio.Socket]. These types of
messages are often called ‘ancillary data’.

The message can represent some sort of special instruction to or
information from the socket or can represent a special kind of
transfer to the peer (for example, sending a file descriptor over
a UNIX socket).

These messages are sent with [method@Gio.Socket.send_message] and received
with [method@Gio.Socket.receive_message].

To extend the set of control message that can be sent, subclass this
class and override the `get_size`, `get_level`, `get_type` and `serialize`
methods.

To extend the set of control messages that can be received, subclass
this class and implement the `deserialize` method. Also, make sure your
class is registered with the [type@GObject.Type] type system before calling
[method@Gio.Socket.receive_message] to read such a message.

https://docs.gtk.org/gio/class.SocketControlMessage.html

  • Konstruktordetails

  • Methodendetails

    • getClassHandler

      public static ClassHandler getClassHandler()
    • getLevel

      public int getLevel()
      Returns the "level" (i.e. the originating protocol) of the control message.
      This is often SOL_SOCKET.
      Gibt zurück:
      an integer describing the level
    • getMsgType

      public int getMsgType()
      Returns the protocol specific type of the control message.
      For instance, for UNIX fd passing this would be SCM_RIGHTS.
      Gibt zurück:
      an integer describing the type of control message
    • getSize

      public long getSize()
      Returns the space required for the control message, not including
      headers or alignment.
      Gibt zurück:
      The number of bytes required.
    • serialize

      public void serialize(@Nonnull Pointer data)
      Converts the data in the message to bytes placed in the
      message.

      @data is guaranteed to have enough space to fit the size
      returned by g_socket_control_message_get_size() on this
      object.
      Parameter:
      data - A buffer to write data to
    • deserialize

      public static SocketControlMessage deserialize(int level, int type, long size, @Nonnull Pointer data)
      Tries to deserialize a socket control message of a given
      @level and @type. This will ask all known (to GType) subclasses
      of #GSocketControlMessage if they can understand this kind
      of message and if so deserialize it into a #GSocketControlMessage.

      If there is no implementation for this kind of control message, %NULL
      will be returned.
      Parameter:
      level - a socket level
      type - a socket control message type for the given @level
      size - the size of the data in bytes
      data - pointer to the message data
      Gibt zurück:
      the deserialized message or %NULL
    • 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()