summaryrefslogtreecommitdiff
path: root/gobex/gobex-transfer.c
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@intel.com>2011-08-30 12:33:20 +0300
committerMarcel Holtmann <marcel@holtmann.org>2012-12-04 22:22:02 +0100
commit4549f997e8523358ff812aac09465364f6f77b7b (patch)
tree0b4580fb3aed29b14175925d9a27c1775a2fed39 /gobex/gobex-transfer.c
parent003421aed298c52eacd5e58c120f877df5462ea0 (diff)
downloadbluez-4549f997e8523358ff812aac09465364f6f77b7b.tar.gz
gobex: Add client transfer functions taking a pre-created GObexPacket
Diffstat (limited to 'gobex/gobex-transfer.c')
-rw-r--r--gobex/gobex-transfer.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/gobex/gobex-transfer.c b/gobex/gobex-transfer.c
index edf999266..3978c1375 100644
--- a/gobex/gobex-transfer.c
+++ b/gobex/gobex-transfer.c
@@ -207,6 +207,30 @@ static struct transfer *transfer_new(GObex *obex, guint8 opcode,
return transfer;
}
+guint g_obex_put_req_pkt(GObex *obex, GObexPacket *req,
+ GObexDataProducer data_func, GObexFunc complete_func,
+ gpointer user_data, GError **err)
+{
+ struct transfer *transfer;
+
+ if (g_obex_packet_get_operation(req, NULL) != G_OBEX_OP_PUT)
+ return 0;
+
+ transfer = transfer_new(obex, G_OBEX_OP_PUT, complete_func, user_data);
+ transfer->data_producer = data_func;
+
+ g_obex_packet_add_body(req, put_get_data, transfer);
+
+ transfer->req_id = g_obex_send_req(obex, req, -1, transfer_response,
+ transfer, err);
+ if (transfer->req_id == 0) {
+ transfer_free(transfer);
+ return 0;
+ }
+
+ return transfer->id;
+}
+
guint g_obex_put_req(GObex *obex, GObexDataProducer data_func,
GObexFunc complete_func, gpointer user_data,
GError **err, guint8 first_hdr_id, ...)
@@ -346,6 +370,28 @@ guint g_obex_put_rsp(GObex *obex, GObexPacket *req,
return transfer->id;
}
+guint g_obex_get_req_pkt(GObex *obex, GObexPacket *req,
+ GObexDataConsumer data_func, GObexFunc complete_func,
+ gpointer user_data, GError **err)
+{
+ struct transfer *transfer;
+
+ if (g_obex_packet_get_operation(req, NULL) != G_OBEX_OP_GET)
+ return 0;
+
+ transfer = transfer_new(obex, G_OBEX_OP_GET, complete_func, user_data);
+ transfer->data_consumer = data_func;
+
+ transfer->req_id = g_obex_send_req(obex, req, -1, transfer_response,
+ transfer, err);
+ if (transfer->req_id == 0) {
+ transfer_free(transfer);
+ return 0;
+ }
+
+ return transfer->id;
+}
+
guint g_obex_get_req(GObex *obex, GObexDataConsumer data_func,
GObexFunc complete_func, gpointer user_data,
GError **err, guint8 first_hdr_id, ...)