static void evd_dbus_agent_on_new_dbus_proxy (GObject *obj, GAsyncResult *res, gpointer user_data) { GSimpleAsyncResult *result; GDBusProxy *proxy; GError *error = NULL; ProxyData *proxy_data; proxy_data = (ProxyData *) user_data; result = proxy_data->async_res; if ( (proxy = g_dbus_proxy_new_finish (res, &error)) != NULL) { ObjectData *obj_data; GDBusProxyFlags flags; guint *proxy_id; obj_data = proxy_data->obj_data; obj_data->proxy_counter++; proxy_data->proxy_id = obj_data->proxy_counter; proxy_data->proxy = proxy; g_hash_table_insert (obj_data->proxies, &proxy_data->proxy_id, proxy_data); proxy_id = g_new (guint, 1); *proxy_id = obj_data->proxy_counter; g_simple_async_result_set_op_res_gpointer (result, proxy_id, g_free); flags = g_dbus_proxy_get_flags (proxy); if ( (flags & G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS) == 0) { g_signal_connect (proxy, "g-signal", G_CALLBACK (evd_dbus_agent_on_proxy_signal), proxy_data); } if ( (flags & G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES) == 0) { g_signal_connect (proxy, "g-properties-changed", G_CALLBACK (evd_dbus_agent_on_proxy_properties_changed), proxy_data); } } else { g_simple_async_result_set_from_error (proxy_data->async_res, error); g_error_free (error); evd_dbus_agent_free_proxy_data (proxy_data); } g_simple_async_result_complete (result); g_object_unref (result); }
int main(int argc, char *argv[]) { GDBusConnection *connection; GError *error = NULL; GDBusProxy *proxy; gchar *name; gchar *object_path; gchar *interface_name; GDBusProxyFlags flags; g_type_init(); connection = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error); if (connection == NULL) { if (error != NULL) { g_printerr("get connection error: %s\n", error->message); g_error_free(error); } else { g_printerr("get connection error: unknown error\n"); } return -1; } else { g_print("get connection success\n"); } name = "net.connman"; object_path = "/"; interface_name = "net.connman.Manager"; #if 0 GDBusProxy *g_dbus_proxy_new_sync (GDBusConnection *connection, GDBusProxyFlags flags, GDBusInterfaceInfo *info, const gchar *name, const gchar *object_path, const gchar *interface_name, GCancellable *cancellable, GError **error); #endif proxy = g_dbus_proxy_new_sync(connection, G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START | G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS, NULL, name, object_path, interface_name, NULL, &error); if (proxy == NULL) { if (error != NULL) { g_printerr("get proxy failed: %s\n", error->message); } else { g_printerr("get proxy failed: %s\n", "unknown error"); } } g_print("get proxy success\n"); flags = g_dbus_proxy_get_flags(proxy); g_print("flags: %d\n", (int)flags); proxy_flags_print(flags); /** * get cached property */ GVariant *val; #if 0 GDBusNodeInfo *introspection_data; GDBusInterfaceInfo *info; introspection_data = g_dbus_node_info_new_for_xml(connman_manager_xml, NULL); if (introspection_data == NULL) { g_printerr("get introspection_data failed\n"); return -1; } info = introspection_data->interfaces[0]; g_dbus_proxy_set_interface_info(proxy, info); #endif //GVariant *g_dbus_proxy_get_cached_property (GDBusProxy *proxy, //const gchar *property_name); val = g_dbus_proxy_get_cached_property(proxy, "ActiveProfile"); if (val == NULL) { g_print("get val failed\n"); return -1; } g_print("get val success\n"); return 0; }
int main(int argc, char *argv[]) { GDBusConnection *connection; GError *error = NULL; GDBusProxy *proxy; gchar *name; gchar *object_path; gchar *interface_name; GDBusProxyFlags flags; g_type_init(); connection = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error); if (connection == NULL) { if (error != NULL) { g_printerr("get connection error: %s\n", error->message); g_error_free(error); } else { g_printerr("get connection error: unknown error\n"); } return -1; } else { g_print("get connection success\n"); } name = "net.connman"; object_path = "/"; interface_name = "net.connman.Manager"; #if 0 GDBusProxy *g_dbus_proxy_new_sync (GDBusConnection *connection, GDBusProxyFlags flags, GDBusInterfaceInfo *info, const gchar *name, const gchar *object_path, const gchar *interface_name, GCancellable *cancellable, GError **error); #endif proxy = g_dbus_proxy_new_sync(connection, G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START | G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS, NULL, name, object_path, interface_name, NULL, &error); if (proxy == NULL) { if (error != NULL) { g_printerr("get proxy failed: %s\n", error->message); } else { g_printerr("get proxy failed: %s\n", "unknown error"); } } g_print("get proxy success\n"); flags = g_dbus_proxy_get_flags(proxy); g_print("flags: %d\n", (int)flags); proxy_flags_print(flags); return 0; }