结构体
GLibSource
实例方法
g_source_add_child_source
将 child_source
添加到 source
中,作为“轮询”源;将 source
添加到 GMainContext
时,将自动添加具有相同优先级的 child_source
,当触发 child_source
时,它将导致 source
调度(除调用其自身回调外),并且当销毁 source
时,它将同时销毁 child_source
。(如果 source
自身的 prepare/check 函数指示它准备就绪,则它仍将被调度。)
从 2.28 版开始
g_source_add_poll
将文件描述符添加到此来源轮询的文件描述符集中。这通常与 g_source_new()
结合使用以添加事件源。事件源的检查功能通常将测试 GPollFD
结构中的 revents
域,并且在需要处理事件时返回 TRUE
。
g_source_get_id
返回特定源的数字 ID。源的 ID 是特定主循环上下文中唯一的正整数。从 ID 到源的反向映射由 g_main_context_find_source_by_id()
完成。
g_source_get_time
获取在检查此源时要使用的时间。与直接调用 g_get_monotonic_time()
相比,调用此函数的好处在于,在检查多个源时,GLib 可以缓存一个值,而无需重复获取系统单调时间。
从 2.28 版开始
g_source_set_callback_indirect
设置回调函数,将数据存储为引用计数的回调“对象”。它在内部使用。注意,调用 g_source_set_callback_indirect()
假定 callback_data
上的初始引用计数,因此 callback_funcs
->unref 将最终比 callback_funcs
->ref 多调用一次。
g_source_set_dispose_function
将 dispose
设置为 source
上的处置函数。当 source
的引用计数达到 0 时,将调用 dispose
,但在释放源的任何状态之前,尤其是在调用终结函数之前。
since: 2.64
g_source_set_ready_time
设置在达到给定的单调时间(或超过该时间)时派送 GSource
。如果单调时间为过去(如果 ready_time
为 0,则始终如此),则将立即派送源。
从 2.36 版开始