【问题标题】:GDBusProxy - Get input parameters in ready callbackGDBusProxy - 在就绪回调中获取输入参数
【发布时间】:2017-09-18 07:51:51
【问题描述】:

我正在使用gdbus-codegen 生成代码。但基本上我想在GAsyncReadyCallback callback 中获取传递给g_dbus_proxy_call() GVariant *parameters 的参数。

我不想为此使用 gpointer user_data,因为我需要 this 指针。

我该怎么做?

https://developer.gnome.org/gio/stable/GDBusProxy.html#g-dbus-proxy-call

【问题讨论】:

    标签: c++ asynchronous glib dbus gio


    【解决方案1】:

    你可以使用

    struct CallbackArguments {
        YourClass *that;
        GVariant *call_params;
    }
    

    并将CallbackArguments 传递为user_data

    【讨论】:

    • 您是否建议为 CallbackArguments 动态分配内存并在回调中销毁它?回调是否保证被调用?
    • 标准的做法是动态分配这个闭包,是的;并在回调中销毁它。只要对GMainContext 进行了足够的迭代以完成操作,就可以保证只调用一次回调。这是可以处理所有使用GAsyncResult 的异步操作的惯用方式。
    猜你喜欢
    • 2011-04-07
    • 2021-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    • 2021-07-10
    相关资源
    最近更新 更多