结构体
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 版开始