#define G_OBEX_HDR_ID_SRM 0x97
#define G_OBEX_HDR_ID_SRM_FLAGS 0x98
+typedef enum {
+ G_OBEX_DATA_INHERIT,
+ G_OBEX_DATA_COPY,
+ G_OBEX_DATA_REF,
+} GObexDataPolicy;
+
typedef struct _GObex GObex;
typedef struct _GObexRequest GObexRequest;
typedef struct _GObexHeader GObexHeader;
GObexHeader *g_obex_header_unicode(guint8 id, const char *str);
GObexHeader *g_obex_header_bytes(guint8 id, void *data, size_t len,
- gboolean copy_data);
+ GObexDataPolicy data_policy);
GObexHeader *g_obex_header_uint8(guint8 id, guint8 val);
GObexHeader *g_obex_header_uint32(guint8 id, guint32 val);
size_t g_obex_header_encode(GObexHeader *header, void *hdr_ptr, size_t buf_len);
GObexHeader *g_obex_header_decode(const void *data, size_t len,
- gboolean copy, size_t *parsed);
+ GObexDataPolicy data_policy, size_t *parsed);
void g_obex_header_free(GObexHeader *header);
gboolean g_obex_request_add_header(GObexRequest *req, GObexHeader *header);
size_t len;
header = g_obex_header_bytes(G_OBEX_HDR_ID_BODY, data, sizeof(data),
- FALSE);
+ G_OBEX_DATA_REF);
g_assert(header != NULL);
uint8_t encoded[1024];
size_t len;
- header = g_obex_header_decode(buf, buf_len, FALSE, &len);
+ header = g_obex_header_decode(buf, buf_len, G_OBEX_DATA_REF, &len);
g_assert(header != NULL);
g_assert_cmpuint(len, ==, buf_len);
size_t parsed;
header = g_obex_header_decode(hdr_connid, sizeof(hdr_connid),
- FALSE, &parsed);
+ G_OBEX_DATA_REF, &parsed);
g_assert(header != NULL);
g_assert_cmpuint(parsed, ==, sizeof(hdr_connid));
size_t parsed;
header = g_obex_header_decode(hdr_name_ascii, sizeof(hdr_name_ascii),
- FALSE, &parsed);
+ G_OBEX_DATA_REF, &parsed);
g_assert(header != NULL);
g_assert_cmpuint(parsed, ==, sizeof(hdr_name_ascii));
size_t parsed;
header = g_obex_header_decode(hdr_name_umlaut, sizeof(hdr_name_umlaut),
- FALSE, &parsed);
+ G_OBEX_DATA_REF, &parsed);
g_assert(header != NULL);
g_assert_cmpuint(parsed, ==, sizeof(hdr_name_umlaut));
size_t parsed;
header = g_obex_header_decode(hdr_body, sizeof(hdr_body),
- FALSE, &parsed);
+ G_OBEX_DATA_COPY, &parsed);
g_assert(header != NULL);
g_assert_cmpuint(parsed, ==, sizeof(hdr_body));
size_t parsed;
header = g_obex_header_decode(hdr_body, sizeof(hdr_body),
- TRUE, &parsed);
+ G_OBEX_DATA_REF, &parsed);
g_assert(header != NULL);
g_assert_cmpuint(parsed, ==, sizeof(hdr_body));
size_t parsed;
header = g_obex_header_decode(hdr_actionid, sizeof(hdr_actionid),
- FALSE, &parsed);
+ G_OBEX_DATA_REF, &parsed);
g_assert(header != NULL);
g_assert_cmpuint(parsed, ==, sizeof(hdr_actionid));
g_byte_array_append(buf, hdr_actionid, sizeof(hdr_actionid));
g_byte_array_append(buf, hdr_body, sizeof(hdr_body));
- header = g_obex_header_decode(buf->data, buf->len, FALSE, &parsed);
+ header = g_obex_header_decode(buf->data, buf->len, G_OBEX_DATA_REF,
+ &parsed);
g_assert(header != NULL);
g_assert_cmpuint(parsed, ==, sizeof(hdr_connid));
g_byte_array_remove_range(buf, 0, parsed);
g_obex_header_free(header);
- header = g_obex_header_decode(buf->data, buf->len, FALSE, &parsed);
+ header = g_obex_header_decode(buf->data, buf->len, G_OBEX_DATA_REF,
+ &parsed);
g_assert(header != NULL);
g_assert_cmpuint(parsed, ==, sizeof(hdr_name_ascii));
g_byte_array_remove_range(buf, 0, parsed);
g_obex_header_free(header);
- header = g_obex_header_decode(buf->data, buf->len, FALSE, &parsed);
+ header = g_obex_header_decode(buf->data, buf->len, G_OBEX_DATA_REF,
+ &parsed);
g_assert(header != NULL);
g_assert_cmpuint(parsed, ==, sizeof(hdr_actionid));
g_byte_array_remove_range(buf, 0, parsed);
g_obex_header_free(header);
- header = g_obex_header_decode(buf->data, buf->len, FALSE, &parsed);
+ header = g_obex_header_decode(buf->data, buf->len, G_OBEX_DATA_REF,
+ &parsed);
g_assert(header != NULL);
g_assert_cmpuint(parsed, ==, sizeof(hdr_body));
g_byte_array_remove_range(buf, 0, parsed);