diff options
author | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2008-10-24 17:20:13 -0300 |
---|---|---|
committer | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2008-10-24 17:26:34 -0300 |
commit | 72d9ecc66f295977dd43a143ad9d23eae6707e42 (patch) | |
tree | 365736d4c450102dc6499cec7dcc7aa2c07ecc26 | |
parent | 5294c7ce8d17451f2b83ba55a28be47518469956 (diff) | |
download | obexd-72d9ecc66f295977dd43a143ad9d23eae6707e42.tar.gz |
Added FileTransfer interface registration
-rw-r--r-- | client/session.c | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/client/session.c b/client/session.c index 9e463d8..e73ab25 100644 --- a/client/session.c +++ b/client/session.c @@ -49,6 +49,8 @@ #define SESSION_INTERFACE "org.openobex.Session" #define SESSION_BASEPATH "/org/openobex" +#define FTP_INTERFACE "org.openobex.FileTransfer" + #define FOLDER_BROWSING_UUID "\xF9\xEC\x7B\xC4\x95\x3C\x11\xD2\x98\x4E\x52\x54\x00\xDC\x9E\x09" static guint64 counter = 0; @@ -578,6 +580,66 @@ static GDBusMethodTable session_methods[] = { { } }; +static DBusMessage *change_folder(DBusConnection *connection, + DBusMessage *message, void *user_data) +{ + return dbus_message_new_method_return(message); +} + +static DBusMessage *create_folder(DBusConnection *connection, + DBusMessage *message, void *user_data) +{ + return dbus_message_new_method_return(message); +} + +static DBusMessage *list_folder(DBusConnection *connection, + DBusMessage *message, void *user_data) +{ + return dbus_message_new_method_return(message); +} + +static DBusMessage *get_file(DBusConnection *connection, + DBusMessage *message, void *user_data) +{ + return dbus_message_new_method_return(message); +} + +static DBusMessage *put_file(DBusConnection *connection, + DBusMessage *message, void *user_data) +{ + return dbus_message_new_method_return(message); +} + +static DBusMessage *copy_file(DBusConnection *connection, + DBusMessage *message, void *user_data) +{ + return dbus_message_new_method_return(message); +} + +static DBusMessage *move_file(DBusConnection *connection, + DBusMessage *message, void *user_data) +{ + return dbus_message_new_method_return(message); +} + +static DBusMessage *delete(DBusConnection *connection, + DBusMessage *message, void *user_data) +{ + return dbus_message_new_method_return(message); +} + +static GDBusMethodTable ftp_methods[] = { + { "ChangeFolder", "s", "", change_folder }, + { "CreateFolder", "s", "", create_folder }, + { "ListFolder", "s", "aa{sv}", list_folder }, + { "GetFile", "ss", "", get_file }, + { "PutFile", "ss", "", put_file }, + { "CopyFile", "ss", "", copy_file }, + { "MoveFile", "ss", "", move_file }, + { "Delete", "s", "", delete }, + { } +}; + static void xfer_progress(GwObexXfer *xfer, gpointer user_data) { struct session_data *session = user_data; @@ -729,6 +791,18 @@ int session_send(struct session_data *session, const char *filename) int session_register(struct session_data *session) { + GDBusMethodTable *methods; + const char *iface; + + switch (session->uuid) { + case OBEX_FILETRANS_SVCLASS_ID: + iface = FTP_INTERFACE; + methods = ftp_methods; + break; + default: + return -EINVAL; + } + session->path = g_strdup_printf("%s/session%ju", SESSION_BASEPATH, counter++); @@ -738,6 +812,15 @@ int session_register(struct session_data *session) session, NULL) == FALSE) return -EIO; + if (g_dbus_register_interface(session->conn, session->path, + iface, + methods, NULL, NULL, + session, NULL) == FALSE) { + g_dbus_unregister_interface(session->conn, + session->path, SESSION_INTERFACE); + return -EIO; + } + session_ref(session); return 0; |