X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gdbus%2Fgdbus.h;h=d902f8e7c0568a6aa88a5d176bf5daa8bf732e4c;hb=4abf29afdfd527c3ddd450972cf0bf6d4e823f09;hp=77b8aee12a00f0abe1144f18b2d61c299d493126;hpb=a22875ffece0ce823882a653c9c212e1ebb4963c;p=framework%2Fconnectivity%2Fconnman.git diff --git a/gdbus/gdbus.h b/gdbus/gdbus.h index 77b8aee..d902f8e 100644 --- a/gdbus/gdbus.h +++ b/gdbus/gdbus.h @@ -55,6 +55,13 @@ typedef void (* GDBusDestroyFunction) (void *user_data); typedef DBusMessage * (* GDBusMethodFunction) (DBusConnection *connection, DBusMessage *message, void *user_data); +typedef guint32 GDBusPendingReply; + +typedef void (* GDBusSecurityFunction) (DBusConnection *connection, + const char *action, + gboolean interaction, + GDBusPendingReply pending); + typedef enum { G_DBUS_METHOD_FLAG_DEPRECATED = (1 << 0), G_DBUS_METHOD_FLAG_NOREPLY = (1 << 1), @@ -69,12 +76,19 @@ typedef enum { G_DBUS_PROPERTY_FLAG_DEPRECATED = (1 << 0), } GDBusPropertyFlags; +typedef enum { + G_DBUS_SECURITY_FLAG_DEPRECATED = (1 << 0), + G_DBUS_SECURITY_FLAG_BUILTIN = (1 << 1), + G_DBUS_SECURITY_FLAG_ALLOW_INTERACTION = (1 << 2), +} GDBusSecurityFlags; + typedef struct { const char *name; const char *signature; const char *reply; GDBusMethodFunction function; GDBusMethodFlags flags; + unsigned int privilege; } GDBusMethodTable; typedef struct { @@ -89,18 +103,39 @@ typedef struct { GDBusPropertyFlags flags; } GDBusPropertyTable; +typedef struct { + unsigned int privilege; + const char *action; + GDBusSecurityFlags flags; + GDBusSecurityFunction function; +} GDBusSecurityTable; + gboolean g_dbus_register_interface(DBusConnection *connection, const char *path, const char *name, - GDBusMethodTable *methods, - GDBusSignalTable *signals, - GDBusPropertyTable *properties, + const GDBusMethodTable *methods, + const GDBusSignalTable *signals, + const GDBusPropertyTable *properties, void *user_data, GDBusDestroyFunction destroy); gboolean g_dbus_unregister_interface(DBusConnection *connection, const char *path, const char *name); +gboolean g_dbus_register_security(const GDBusSecurityTable *security); +gboolean g_dbus_unregister_security(const GDBusSecurityTable *security); + +void g_dbus_pending_success(DBusConnection *connection, + GDBusPendingReply pending); +void g_dbus_pending_error(DBusConnection *connection, + GDBusPendingReply pending, + const char *name, const char *format, ...) + __attribute__((format(printf, 4, 5))); +void g_dbus_pending_error_valist(DBusConnection *connection, + GDBusPendingReply pending, const char *name, + const char *format, va_list args); + DBusMessage *g_dbus_create_error(DBusMessage *message, const char *name, - const char *format, ...); + const char *format, ...) + __attribute__((format(printf, 3, 4))); DBusMessage *g_dbus_create_error_valist(DBusMessage *message, const char *name, const char *format, va_list args); DBusMessage *g_dbus_create_reply(DBusMessage *message, int type, ...);