soup-message-body.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
  2. /*
  3. * Copyright (C) 2000-2003, Ximian, Inc.
  4. */
  5. #ifndef SOUP_MESSAGE_BODY_H
  6. #define SOUP_MESSAGE_BODY_H 1
  7. #include <libsoup/soup-types.h>
  8. G_BEGIN_DECLS
  9. typedef enum {
  10. SOUP_MEMORY_STATIC,
  11. SOUP_MEMORY_TAKE,
  12. SOUP_MEMORY_COPY,
  13. SOUP_MEMORY_TEMPORARY
  14. } SoupMemoryUse;
  15. typedef struct {
  16. const char *data;
  17. gsize length;
  18. } SoupBuffer;
  19. SOUP_AVAILABLE_IN_2_4
  20. GType soup_buffer_get_type (void);
  21. #define SOUP_TYPE_BUFFER (soup_buffer_get_type ())
  22. SOUP_AVAILABLE_IN_2_4
  23. SoupBuffer *soup_buffer_new (SoupMemoryUse use,
  24. gconstpointer data,
  25. gsize length);
  26. SOUP_AVAILABLE_IN_2_32
  27. SoupBuffer *soup_buffer_new_take (guchar *data,
  28. gsize length);
  29. SOUP_AVAILABLE_IN_2_4
  30. SoupBuffer *soup_buffer_new_subbuffer (SoupBuffer *parent,
  31. gsize offset,
  32. gsize length);
  33. SOUP_AVAILABLE_IN_2_4
  34. SoupBuffer *soup_buffer_new_with_owner (gconstpointer data,
  35. gsize length,
  36. gpointer owner,
  37. GDestroyNotify owner_dnotify);
  38. SOUP_AVAILABLE_IN_2_4
  39. gpointer soup_buffer_get_owner (SoupBuffer *buffer);
  40. SOUP_AVAILABLE_IN_2_32
  41. void soup_buffer_get_data (SoupBuffer *buffer,
  42. const guint8 **data,
  43. gsize *length);
  44. SOUP_AVAILABLE_IN_2_40
  45. GBytes *soup_buffer_get_as_bytes (SoupBuffer *buffer);
  46. SOUP_AVAILABLE_IN_2_4
  47. SoupBuffer *soup_buffer_copy (SoupBuffer *buffer);
  48. SOUP_AVAILABLE_IN_2_4
  49. void soup_buffer_free (SoupBuffer *buffer);
  50. typedef struct {
  51. const char *data;
  52. goffset length;
  53. } SoupMessageBody;
  54. SOUP_AVAILABLE_IN_2_4
  55. GType soup_message_body_get_type (void);
  56. #define SOUP_TYPE_MESSAGE_BODY (soup_message_body_get_type ())
  57. SOUP_AVAILABLE_IN_2_4
  58. SoupMessageBody *soup_message_body_new (void);
  59. SOUP_AVAILABLE_IN_2_24
  60. void soup_message_body_set_accumulate(SoupMessageBody *body,
  61. gboolean accumulate);
  62. SOUP_AVAILABLE_IN_2_24
  63. gboolean soup_message_body_get_accumulate(SoupMessageBody *body);
  64. SOUP_AVAILABLE_IN_2_4
  65. void soup_message_body_append (SoupMessageBody *body,
  66. SoupMemoryUse use,
  67. gconstpointer data,
  68. gsize length);
  69. SOUP_AVAILABLE_IN_2_32
  70. void soup_message_body_append_take (SoupMessageBody *body,
  71. guchar *data,
  72. gsize length);
  73. SOUP_AVAILABLE_IN_2_4
  74. void soup_message_body_append_buffer (SoupMessageBody *body,
  75. SoupBuffer *buffer);
  76. SOUP_AVAILABLE_IN_2_4
  77. void soup_message_body_truncate (SoupMessageBody *body);
  78. SOUP_AVAILABLE_IN_2_4
  79. void soup_message_body_complete (SoupMessageBody *body);
  80. SOUP_AVAILABLE_IN_2_4
  81. SoupBuffer *soup_message_body_flatten (SoupMessageBody *body);
  82. SOUP_AVAILABLE_IN_2_4
  83. SoupBuffer *soup_message_body_get_chunk (SoupMessageBody *body,
  84. goffset offset);
  85. SOUP_AVAILABLE_IN_2_24
  86. void soup_message_body_got_chunk (SoupMessageBody *body,
  87. SoupBuffer *chunk);
  88. SOUP_AVAILABLE_IN_2_24
  89. void soup_message_body_wrote_chunk (SoupMessageBody *body,
  90. SoupBuffer *chunk);
  91. SOUP_AVAILABLE_IN_2_4
  92. void soup_message_body_free (SoupMessageBody *body);
  93. G_END_DECLS
  94. #endif /* SOUP_MESSAGE_BODY_H */