GioSocketControlMessage

自:2.22

说明 [src]

abstract class Gio.SocketControlMessage : GObject.Object
{
  priv: GSocketControlMessagePrivate*
}

GSocketControlMessage 是一种特殊用途的实用消息,可以发送到或从 GSocket 接收。这些类型的消息通常称为“辅助数据”。

此消息可能表示发送到或接收自套接字的某种特殊指令或信息,或是表示对对等方的一种特殊类型的传输(例如,通过 UNIX 套接字发送文件描述符)。

这些消息将通过 g_socket_send_message() 发送,并通过 g_socket_receive_message() 接收。

要扩展可发送的控制消息集,请从此类派生出一个子类并覆盖 get_sizeget_levelget_typeserialize 方法。

要扩展可接收的控制消息集,请从此类派生出一个子类并实现 deserialize 方法。此外,请确保在调用 g_socket_receive_message() 读取此类消息之前,您的类已在 GType 类型系统中注册。

自以下版本提供:2.22

祖先

函数

g_socket_control_message_deserialize

尝试对给定 leveltype 的套接字控制消息进行反序列化。这将询问所有已知的(对 GType)GSocketControlMessage 子类它们是否能够理解这种消息,如果能,则将其反序列化为 GSocketControlMessage

自:2.22

实例方法

g_socket_control_message_get_level

返回控制消息的“级别”(即源协议)。这通常是 SOL_SOCKET。

自:2.22

g_socket_control_message_get_msg_type

返回控制消息的特定于协议的类型。例如,对于 UNIX fd 传递,这将是 SCM_RIGHTS。

自:2.22

g_socket_control_message_get_size

返回控制消息所需的,不包括标头或对齐的空间。

自:2.22

g_socket_control_message_serialize

将消息中的数据转换为字节,并将其放入消息中。

自:2.22

GObject(43)继承的方法

有关完整方法列表,请参阅 GObject

信号

GObject(1)继承的信号
GObject::notify

当对象的某个属性通过 g_object_set_property()、g_object_set() 等设置其值时,会对该对象发出通知信号。

类结构

struct GioSocketControlMessageClass {
  GObjectClass parent_class;
  gsize (* get_size) (
    GSocketControlMessage* message
  );
  int (* get_level) (
    GSocketControlMessage* message
  );
  int (* get_type) (
    GSocketControlMessage* message
  );
  void (* serialize) (
    GSocketControlMessage* message,
    gpointer data
  );
  GSocketControlMessage* (* deserialize) (
    int level,
    int type,
    gsize size,
    gpointer data
  );
  void (* _g_reserved1) (
void
  );
  void (* _g_reserved2) (
void
  );
  void (* _g_reserved3) (
void
  );
  void (* _g_reserved4) (
void
  );
  void (* _g_reserved5) (
void
  );
  
}

GSocketControlMessage 的类结构。

类成员
parent_class: GObjectClass

没有可用说明。

get_size: gsize (* get_size) ( GSocketControlMessage* message )

取得消息的大小。

get_level: int (* get_level) ( GSocketControlMessage* message )

取得消息的协议。

get_type: int (* get_type) ( GSocketControlMessage* message )

取得消息的协议特定类型。

serialize: void (* serialize) ( GSocketControlMessage* message, gpointer data )

写出消息数据。

deserialize: GSocketControlMessage* (* deserialize) ( int level, int type, gsize size, gpointer data )

尝试反序列化一条消息。

_g_reserved1: void (* _g_reserved1) ( void )

没有可用说明。

_g_reserved2: void (* _g_reserved2) ( void )

没有可用说明。

_g_reserved3: void (* _g_reserved3) ( void )

没有可用说明。

_g_reserved4: void (* _g_reserved4) ( void )

没有可用说明。

_g_reserved5: void (* _g_reserved5) ( void )

没有可用说明。

虚拟方法

Gio.SocketControlMessageClass.get_level

返回控制消息的“级别”(即源协议)。这通常是 SOL_SOCKET。

自:2.22

Gio.SocketControlMessageClass.get_size

返回控制消息所需的,不包括标头或对齐的空间。

自:2.22

Gio.SocketControlMessageClass.get_type

取得消息的协议特定类型。

Gio.SocketControlMessageClass.serialize

将消息中的数据转换为字节,并将其放入消息中。

自:2.22