diff options
author | Johan Hedberg <johan.hedberg@intel.com> | 2011-08-30 12:33:20 +0300 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2012-12-04 22:22:02 +0100 |
commit | 4549f997e8523358ff812aac09465364f6f77b7b (patch) | |
tree | 0b4580fb3aed29b14175925d9a27c1775a2fed39 /gobex/gobex-transfer.c | |
parent | 003421aed298c52eacd5e58c120f877df5462ea0 (diff) | |
download | bluez-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.c | 46 |
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, ...) |