类
GioSocketControlMessage
自:2.22
说明 [src]
abstract class Gio.SocketControlMessage : GObject.Object
{
priv: GSocketControlMessagePrivate*
}
GSocketControlMessage
是一种特殊用途的实用消息,可以发送到或从 GSocket
接收。这些类型的消息通常称为“辅助数据”。
此消息可能表示发送到或接收自套接字的某种特殊指令或信息,或是表示对对等方的一种特殊类型的传输(例如,通过 UNIX 套接字发送文件描述符)。
这些消息将通过 g_socket_send_message()
发送,并通过 g_socket_receive_message()
接收。
要扩展可发送的控制消息集,请从此类派生出一个子类并覆盖 get_size
、get_level
、get_type
和 serialize
方法。
要扩展可接收的控制消息集,请从此类派生出一个子类并实现 deserialize
方法。此外,请确保在调用 g_socket_receive_message()
读取此类消息之前,您的类已在 GType
类型系统中注册。
自以下版本提供:2.22
函数
g_socket_control_message_deserialize
尝试对给定 level
和 type
的套接字控制消息进行反序列化。这将询问所有已知的(对 GType)GSocketControlMessage
子类它们是否能够理解这种消息,如果能,则将其反序列化为 GSocketControlMessage
。
自:2.22
信号
从 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 )
没有可用说明。