方法
GioSocketcreate_source
自:2.22
声明 [源码]
GSource*
g_socket_create_source (
GSocket* socket,
GIOCondition condition,
GCancellable* cancellable
)
描述 [源码]
创建一个可以绑定到GMainContext的GSource,以监控套接字上指定的condition条件。GSource保留对socket的引用。
源上的回调函数是 GSocketSourceFunc
类型。
在 condition
中指定 G_IO_ERR
或 G_IO_HUP
没有意义;如果这些条件为真,总会报告输出。
如果 cancellable
不是 NULL
,则可以使用它来取消源,这会导致源引发,并报告当前的条件(除非取消与条件变化同时发生,否则可能是 0)。您可以在回调中通过使用 g_cancellable_is_cancelled()
来检查这一点。
如果 socket
已设置超时且在 condition
发生之前达到,则源将触发,并报告 G_IO_IN
或 G_IO_OUT
,具体取决于 condition
。然而,socket
将被标记为已超时,因此您下次调用 GSocket
I/O 方法时,将失败并返回 G_IO_ERROR_TIMED_OUT
。
自 2.22 版本起可用
此方法对语言绑定不可直接访问。
参数
condition
-
类型:
GIOCondition
要监控的
GIOCondition
掩码。 cancellable
-
类型:
GCancellable
%GCancellable 或
NULL
。该参数可以为 NULL
。数据由方法的调用者拥有。
返回值
类型:GSource
一个新分配的 %GSource,使用 g_source_unref()
释放。
方法的调用者将拥有返回的数据,并负责释放它。 |