diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2007-01-19 23:48:01 +0000 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2007-01-19 23:48:01 +0000 |
commit | 9932d3f27fb04f03c560525f312c67b15aeeb85e (patch) | |
tree | e2fe5567c98f19c9f394d3d563b5460216deb08c /hcid/dbus-database.c | |
parent | 5efa3b9135fb762979bd143a1db31e89ffaae353 (diff) |
Add skeleton for database methods
Diffstat (limited to 'hcid/dbus-database.c')
-rw-r--r-- | hcid/dbus-database.c | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/hcid/dbus-database.c b/hcid/dbus-database.c index cf4cbff8..3421c5b3 100644 --- a/hcid/dbus-database.c +++ b/hcid/dbus-database.c @@ -25,4 +25,74 @@ #include <config.h> #endif +#include <dbus/dbus.h> + +#include "dbus.h" +#include "hcid.h" +#include "dbus-common.h" +#include "dbus-error.h" #include "dbus-database.h" + +static DBusHandlerResult add_service_record(DBusConnection *conn, + DBusMessage *msg, void *data) +{ + DBusMessage *reply; + dbus_uint32_t handle = 0x12345; + + reply = dbus_message_new_method_return(msg); + if (!reply) + return DBUS_HANDLER_RESULT_NEED_MEMORY; + + dbus_message_append_args(reply, DBUS_TYPE_UINT32, &handle, + DBUS_TYPE_INVALID); + + return send_message_and_unref(conn, reply); +} + +static DBusHandlerResult add_service_record_from_xml(DBusConnection *conn, + DBusMessage *msg, void *data) +{ + DBusMessage *reply; + dbus_uint32_t handle = 0x12345; + + reply = dbus_message_new_method_return(msg); + if (!reply) + return DBUS_HANDLER_RESULT_NEED_MEMORY; + + dbus_message_append_args(reply, DBUS_TYPE_UINT32, &handle, + DBUS_TYPE_INVALID); + + return send_message_and_unref(conn, reply); +} + +static DBusHandlerResult remove_service_record(DBusConnection *conn, + DBusMessage *msg, void *data) +{ + DBusMessage *reply; + + reply = dbus_message_new_method_return(msg); + if (!reply) + return DBUS_HANDLER_RESULT_NEED_MEMORY; + + return send_message_and_unref(conn, reply); +} + +static struct service_data database_services[] = { + { "AddServiceRecord", add_service_record }, + { "AddServiceRecordFromXML", add_service_record_from_xml }, + { "RemoveServiceRecord", remove_service_record }, + { NULL, NULL } +}; + +DBusHandlerResult handle_database_method(DBusConnection *conn, + DBusMessage *msg, void *data) +{ + service_handler_func_t handler; + + handler = find_service_handler(database_services, msg); + + if (handler) + return handler(conn, msg, data); + + return error_unknown_method(conn, msg); +} |