gobex-header.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. /* SPDX-License-Identifier: GPL-2.0-or-later */
  2. /*
  3. *
  4. * OBEX library with GLib integration
  5. *
  6. * Copyright (C) 2011 Intel Corporation. All rights reserved.
  7. *
  8. */
  9. #ifndef __GOBEX_HEADER_H
  10. #define __GOBEX_HEADER_H
  11. #include <glib.h>
  12. #include "gobex/gobex-defs.h"
  13. #include "gobex/gobex-apparam.h"
  14. /* Header ID's */
  15. #define G_OBEX_HDR_INVALID 0x00
  16. #define G_OBEX_HDR_COUNT 0xc0
  17. #define G_OBEX_HDR_NAME 0x01
  18. #define G_OBEX_HDR_TYPE 0x42
  19. #define G_OBEX_HDR_LENGTH 0xc3
  20. #define G_OBEX_HDR_TIME 0x44
  21. #define G_OBEX_HDR_DESCRIPTION 0x05
  22. #define G_OBEX_HDR_TARGET 0x46
  23. #define G_OBEX_HDR_HTTP 0x47
  24. #define G_OBEX_HDR_BODY 0x48
  25. #define G_OBEX_HDR_BODY_END 0x49
  26. #define G_OBEX_HDR_WHO 0x4a
  27. #define G_OBEX_HDR_CONNECTION 0xcb
  28. #define G_OBEX_HDR_APPARAM 0x4c
  29. #define G_OBEX_HDR_AUTHCHAL 0x4d
  30. #define G_OBEX_HDR_AUTHRESP 0x4e
  31. #define G_OBEX_HDR_CREATOR 0xcf
  32. #define G_OBEX_HDR_WANUUID 0x50
  33. #define G_OBEX_HDR_OBJECTCLASS 0x51
  34. #define G_OBEX_HDR_SESSIONPARAM 0x52
  35. #define G_OBEX_HDR_SESSIONSEQ 0x93
  36. #define G_OBEX_HDR_ACTION 0x94
  37. #define G_OBEX_HDR_DESTNAME 0x15
  38. #define G_OBEX_HDR_PERMISSIONS 0xd6
  39. #define G_OBEX_HDR_SRM 0x97
  40. #define G_OBEX_HDR_SRMP 0x98
  41. /* Action header values */
  42. #define G_OBEX_ACTION_COPY 0x00
  43. #define G_OBEX_ACTION_MOVE 0x01
  44. #define G_OBEX_ACTION_SETPERM 0x02
  45. /* SRM header values */
  46. #define G_OBEX_SRM_DISABLE 0x00
  47. #define G_OBEX_SRM_ENABLE 0x01
  48. #define G_OBEX_SRM_INDICATE 0x02
  49. /* SRMP header values */
  50. #define G_OBEX_SRMP_NEXT 0x00
  51. #define G_OBEX_SRMP_WAIT 0x01
  52. #define G_OBEX_SRMP_NEXT_WAIT 0x02
  53. typedef struct _GObexHeader GObexHeader;
  54. gboolean g_obex_header_get_unicode(GObexHeader *header, const char **str);
  55. gboolean g_obex_header_get_bytes(GObexHeader *header, const guint8 **val,
  56. gsize *len);
  57. gboolean g_obex_header_get_uint8(GObexHeader *header, guint8 *val);
  58. gboolean g_obex_header_get_uint32(GObexHeader *header, guint32 *val);
  59. GObexApparam *g_obex_header_get_apparam(GObexHeader *header);
  60. GObexHeader *g_obex_header_new_unicode(guint8 id, const char *str);
  61. GObexHeader *g_obex_header_new_bytes(guint8 id, const void *data, gsize len);
  62. GObexHeader *g_obex_header_new_uint8(guint8 id, guint8 val);
  63. GObexHeader *g_obex_header_new_uint32(guint8 id, guint32 val);
  64. GObexHeader *g_obex_header_new_tag(guint8 id, GObexApparam *apparam);
  65. GObexHeader *g_obex_header_new_apparam(GObexApparam *apparam);
  66. GSList *g_obex_header_create_list(guint8 first_hdr_id, va_list args,
  67. gsize *total_len);
  68. guint8 g_obex_header_get_id(GObexHeader *header);
  69. guint16 g_obex_header_get_length(GObexHeader *header);
  70. gssize g_obex_header_encode(GObexHeader *header, void *buf, gsize buf_len);
  71. GObexHeader *g_obex_header_decode(const void *data, gsize len,
  72. GObexDataPolicy data_policy, gsize *parsed,
  73. GError **err);
  74. void g_obex_header_free(GObexHeader *header);
  75. #endif /* __GOBEX_HEADER_H */