From b50f20a501bc0563a66a674bca9dba665aff4202 Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Tue, 5 Jul 2011 19:36:41 +0300 Subject: [PATCH] gobex: Use GObexDataProducer type instead of (custom) GObexPacketDataFunc --- gobex/gobex-defs.h | 4 ++++ gobex/gobex-packet.c | 7 ++++--- gobex/gobex-packet.h | 5 +---- gobex/gobex-transfer.c | 3 +-- gobex/gobex-transfer.h | 5 +---- unit/test-gobex-packet.c | 6 ++---- unit/test-gobex.c | 8 +++----- 7 files changed, 16 insertions(+), 22 deletions(-) diff --git a/gobex/gobex-defs.h b/gobex/gobex-defs.h index 867307749..776615ff2 100644 --- a/gobex/gobex-defs.h +++ b/gobex/gobex-defs.h @@ -39,6 +39,10 @@ typedef enum { G_OBEX_ERROR_FAILED, } GObexError; +typedef gssize (*GObexDataProducer) (void *buf, gsize len, gpointer user_data); +typedef gboolean (*GObexDataConsumer) (const void *buf, gsize len, + gpointer user_data); + #define G_OBEX_ERROR g_obex_error_quark() GQuark g_obex_error_quark(void); diff --git a/gobex/gobex-packet.c b/gobex/gobex-packet.c index 6051fc4c8..b3165530f 100644 --- a/gobex/gobex-packet.c +++ b/gobex/gobex-packet.c @@ -22,6 +22,7 @@ #include #include +#include "gobex-defs.h" #include "gobex-packet.h" #define FINAL_BIT 0x80 @@ -41,7 +42,7 @@ struct _GObexPacket { gsize hlen; /* Length of all encoded headers */ GSList *headers; - GObexPacketDataFunc get_body; + GObexDataProducer get_body; gpointer get_body_data; }; @@ -97,7 +98,7 @@ gboolean g_obex_packet_add_header(GObexPacket *pkt, GObexHeader *header) return TRUE; } -gboolean g_obex_packet_add_body(GObexPacket *pkt, GObexPacketDataFunc func, +gboolean g_obex_packet_add_body(GObexPacket *pkt, GObexDataProducer func, gpointer user_data) { if (pkt->get_body != NULL) @@ -280,7 +281,7 @@ static gssize get_body(GObexPacket *pkt, guint8 *buf, gsize len) if (len < 3) return -ENOBUFS; - ret = pkt->get_body(pkt, buf + 3, len - 3, pkt->get_body_data); + ret = pkt->get_body(buf + 3, len - 3, pkt->get_body_data); if (ret < 0) return ret; diff --git a/gobex/gobex-packet.h b/gobex/gobex-packet.h index ce7844771..669cabf27 100644 --- a/gobex/gobex-packet.h +++ b/gobex/gobex-packet.h @@ -80,15 +80,12 @@ typedef struct _GObexPacket GObexPacket; -typedef gssize (*GObexPacketDataFunc) (GObexPacket *header, void *buf, - gsize len, gpointer user_data); - GObexHeader *g_obex_packet_get_header(GObexPacket *pkt, guint8 id); guint8 g_obex_packet_get_operation(GObexPacket *pkt, gboolean *final); GObexHeader *g_obex_packet_find_header(GObexPacket *pkt, guint8 id); gboolean g_obex_packet_prepend_header(GObexPacket *pkt, GObexHeader *header); gboolean g_obex_packet_add_header(GObexPacket *pkt, GObexHeader *header); -gboolean g_obex_packet_add_body(GObexPacket *pkt, GObexPacketDataFunc func, +gboolean g_obex_packet_add_body(GObexPacket *pkt, GObexDataProducer func, gpointer user_data); gboolean g_obex_packet_set_data(GObexPacket *pkt, const void *data, gsize len, GObexDataPolicy data_policy); diff --git a/gobex/gobex-transfer.c b/gobex/gobex-transfer.c index 48145dba5..a27bb2959 100644 --- a/gobex/gobex-transfer.c +++ b/gobex/gobex-transfer.c @@ -65,8 +65,7 @@ static void transfer_abort_response(GObex *obex, GError *err, GObexPacket *rsp, } -static gssize put_get_data(GObexPacket *pkt, void *buf, gsize len, - gpointer user_data) +static gssize put_get_data(void *buf, gsize len, gpointer user_data) { struct transfer *transfer = user_data; GObexPacket *req; diff --git a/gobex/gobex-transfer.h b/gobex/gobex-transfer.h index 03c7a9e02..6676bce5d 100644 --- a/gobex/gobex-transfer.h +++ b/gobex/gobex-transfer.h @@ -25,10 +25,7 @@ #include #include - -typedef gssize (*GObexDataProducer) (void *buf, gsize len, gpointer user_data); -typedef gboolean (*GObexDataConsumer) (const void *buf, gsize len, - gpointer user_data); +#include guint g_obex_put(GObex *obex, const char *type, const char *name, GObexDataProducer data_func, GObexFunc complete_func, diff --git a/unit/test-gobex-packet.c b/unit/test-gobex-packet.c index ac78568a6..aa9054d65 100644 --- a/unit/test-gobex-packet.c +++ b/unit/test-gobex-packet.c @@ -144,8 +144,7 @@ static void test_decode_encode(void) g_obex_packet_free(pkt); } -static gssize get_body_data(GObexPacket *pkt, void *buf, gsize len, - gpointer user_data) +static gssize get_body_data(void *buf, gsize len, gpointer user_data) { uint8_t data[] = { 1, 2, 3, 4 }; @@ -174,8 +173,7 @@ static void test_encode_on_demand(void) g_obex_packet_free(pkt); } -static gssize get_body_data_fail(GObexPacket *pkt, void *buf, gsize len, - gpointer user_data) +static gssize get_body_data_fail(void *buf, gsize len, gpointer user_data) { return -1; } diff --git a/unit/test-gobex.c b/unit/test-gobex.c index 4792b8d5c..3a544ed2b 100644 --- a/unit/test-gobex.c +++ b/unit/test-gobex.c @@ -570,8 +570,7 @@ static void test_send_connect_pkt(void) test_send_connect(SOCK_SEQPACKET); } -static gssize get_body_data(GObexPacket *pkt, void *buf, gsize len, - gpointer user_data) +static gssize get_body_data(void *buf, gsize len, gpointer user_data) { uint8_t data[] = { 1, 2, 3, 4 }; @@ -580,14 +579,13 @@ static gssize get_body_data(GObexPacket *pkt, void *buf, gsize len, return sizeof(data); } -static gssize get_body_data_fail(GObexPacket *pkt, void *buf, gsize len, - gpointer user_data) +static gssize get_body_data_fail(void *buf, gsize len, gpointer user_data) { g_main_loop_quit(mainloop); return -1; } -static void test_send_on_demand(int transport_type, GObexPacketDataFunc func) +static void test_send_on_demand(int transport_type, GObexDataProducer func) { struct rcv_buf_info r; GIOChannel *io; -- 2.47.3