diff options
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); +}  | 
