diff options
author | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2007-03-15 14:23:47 +0000 |
---|---|---|
committer | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2007-03-15 14:23:47 +0000 |
commit | 74b17da9af9fb4930677000ccbd74495adb3d4c6 (patch) | |
tree | 01e2a2552f25021b0ff5c97dd8866dc652418bc9 | |
parent | 9411bce4baf65cc7891f6899cb602a96c4ac26b3 (diff) |
Network: Added network connection methods skeleton
-rw-r--r-- | network/connection.c | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/network/connection.c b/network/connection.c index bd733cb2..cdcdcbb1 100644 --- a/network/connection.c +++ b/network/connection.c @@ -25,4 +25,131 @@ #include <config.h> #endif +#include <bluetooth/bluetooth.h> + +#include <glib.h> + +#include "logging.h" +#include "dbus.h" + +#define NETWORK_CONNECTION_INTERFACE "org.bluez.network.Manager" +#define NETWORK_ERROR_INTERFACE "org.bluez.Error" + #include "connection.h" + +struct network_conn { + char *path; +}; + +static DBusHandlerResult get_address(DBusConnection *conn, DBusMessage *msg, + void *data) +{ + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static DBusHandlerResult get_uuid(DBusConnection *conn, DBusMessage *msg, + void *data) +{ + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static DBusHandlerResult get_name(DBusConnection *conn, DBusMessage *msg, + void *data) +{ + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static DBusHandlerResult get_descriptor(DBusConnection *conn, DBusMessage *msg, + void *data) +{ + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static DBusHandlerResult get_interface(DBusConnection *conn, DBusMessage *msg, + void *data) +{ + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static DBusHandlerResult connect(DBusConnection *conn, DBusMessage *msg, + void *data) +{ + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static DBusHandlerResult disconnect(DBusConnection *conn, + DBusMessage *msg, void *data) +{ + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static DBusHandlerResult is_connected(DBusConnection *conn, DBusMessage *msg, + void *data) +{ + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static DBusHandlerResult connection_message(DBusConnection *conn, + DBusMessage *msg, void *data) +{ + const char *iface, *member; + + iface = dbus_message_get_interface(msg); + member = dbus_message_get_member(msg); + + if (strcmp(NETWORK_CONNECTION_INTERFACE, iface)) + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + + if (strcmp(member, "GetAddress") == 0) + return get_address(conn, msg, data); + + if (strcmp(member, "GetUUID") == 0) + return get_uuid(conn, msg, data); + + if (strcmp(member, "GetName") == 0) + return get_name(conn, msg, data); + + if (strcmp(member, "GetDescription") == 0) + return get_descriptor(conn, msg, data); + + if (strcmp(member, "GetInterface") == 0) + return get_interface(conn, msg, data); + + if (strcmp(member, "Connect") == 0) + return connect(conn, msg, data); + + if (strcmp(member, "Disconnect") == 0) + return disconnect(conn, msg, data); + + if (strcmp(member, "IsConnected") == 0) + return is_connected(conn, msg, data); + + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static void connection_free(struct network_conn *nc) +{ + if (!nc) + return; + + if (nc->path) + g_free(nc->path); + + g_free(nc); +} + +static void connection_unregister(DBusConnection *conn, void *data) +{ + struct network_conn *nc = data; + + info("Unregistered connection path %s", nc->path); + + connection_free(nc); +} + +/* Virtual table to handle connection object path hierarchy */ +static const DBusObjectPathVTable connection_table = { + .message_function = connection_message, + .unregister_function = connection_unregister, +}; + |