soup-message-headers.h 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
  2. /*
  3. * Copyright (C) 2005 Novell, Inc.
  4. */
  5. #ifndef SOUP_MESSAGE_HEADERS_H
  6. #define SOUP_MESSAGE_HEADERS_H 1
  7. #include <libsoup/soup-types.h>
  8. G_BEGIN_DECLS
  9. typedef struct SoupMessageHeaders SoupMessageHeaders;
  10. SOUP_AVAILABLE_IN_2_4
  11. GType soup_message_headers_get_type (void);
  12. #define SOUP_TYPE_MESSAGE_HEADERS (soup_message_headers_get_type ())
  13. typedef enum {
  14. SOUP_MESSAGE_HEADERS_REQUEST,
  15. SOUP_MESSAGE_HEADERS_RESPONSE,
  16. SOUP_MESSAGE_HEADERS_MULTIPART
  17. } SoupMessageHeadersType;
  18. SOUP_AVAILABLE_IN_2_4
  19. SoupMessageHeaders *soup_message_headers_new (SoupMessageHeadersType type);
  20. SOUP_AVAILABLE_IN_2_4
  21. void soup_message_headers_free (SoupMessageHeaders *hdrs);
  22. SOUP_AVAILABLE_IN_2_4
  23. void soup_message_headers_append (SoupMessageHeaders *hdrs,
  24. const char *name,
  25. const char *value);
  26. SOUP_AVAILABLE_IN_2_4
  27. void soup_message_headers_replace (SoupMessageHeaders *hdrs,
  28. const char *name,
  29. const char *value);
  30. SOUP_AVAILABLE_IN_2_4
  31. void soup_message_headers_remove (SoupMessageHeaders *hdrs,
  32. const char *name);
  33. SOUP_AVAILABLE_IN_2_4
  34. void soup_message_headers_clear (SoupMessageHeaders *hdrs);
  35. SOUP_AVAILABLE_IN_2_36
  36. void soup_message_headers_clean_connection_headers (SoupMessageHeaders *hdrs);
  37. #ifndef SOUP_DISABLE_DEPRECATED
  38. SOUP_AVAILABLE_IN_2_4
  39. SOUP_DEPRECATED_IN_2_28_FOR ("soup_message_headers_get_one or soup_message_headers_get_list")
  40. const char *soup_message_headers_get (SoupMessageHeaders *hdrs,
  41. const char *name);
  42. #endif
  43. SOUP_AVAILABLE_IN_2_28
  44. const char *soup_message_headers_get_one (SoupMessageHeaders *hdrs,
  45. const char *name);
  46. SOUP_AVAILABLE_IN_2_28
  47. const char *soup_message_headers_get_list (SoupMessageHeaders *hdrs,
  48. const char *name);
  49. SOUP_AVAILABLE_IN_2_50
  50. gboolean soup_message_headers_header_contains (SoupMessageHeaders *hdrs,
  51. const char *name,
  52. const char *token);
  53. SOUP_AVAILABLE_IN_2_50
  54. gboolean soup_message_headers_header_equals (SoupMessageHeaders *hdrs,
  55. const char *name,
  56. const char *value);
  57. typedef void (*SoupMessageHeadersForeachFunc)(const char *name,
  58. const char *value,
  59. gpointer user_data);
  60. SOUP_AVAILABLE_IN_2_4
  61. void soup_message_headers_foreach (SoupMessageHeaders *hdrs,
  62. SoupMessageHeadersForeachFunc func,
  63. gpointer user_data);
  64. SOUP_AVAILABLE_IN_2_50
  65. SoupMessageHeadersType soup_message_headers_get_headers_type (SoupMessageHeaders *hdrs);
  66. typedef struct {
  67. /*< private >*/
  68. gpointer dummy[3];
  69. } SoupMessageHeadersIter;
  70. SOUP_AVAILABLE_IN_2_4
  71. void soup_message_headers_iter_init (SoupMessageHeadersIter *iter,
  72. SoupMessageHeaders *hdrs);
  73. SOUP_AVAILABLE_IN_2_4
  74. gboolean soup_message_headers_iter_next (SoupMessageHeadersIter *iter,
  75. const char **name,
  76. const char **value);
  77. /* Specific headers */
  78. typedef enum {
  79. SOUP_ENCODING_UNRECOGNIZED,
  80. SOUP_ENCODING_NONE,
  81. SOUP_ENCODING_CONTENT_LENGTH,
  82. SOUP_ENCODING_EOF,
  83. SOUP_ENCODING_CHUNKED,
  84. SOUP_ENCODING_BYTERANGES
  85. } SoupEncoding;
  86. SOUP_AVAILABLE_IN_2_4
  87. SoupEncoding soup_message_headers_get_encoding (SoupMessageHeaders *hdrs);
  88. SOUP_AVAILABLE_IN_2_4
  89. void soup_message_headers_set_encoding (SoupMessageHeaders *hdrs,
  90. SoupEncoding encoding);
  91. SOUP_AVAILABLE_IN_2_4
  92. goffset soup_message_headers_get_content_length (SoupMessageHeaders *hdrs);
  93. SOUP_AVAILABLE_IN_2_4
  94. void soup_message_headers_set_content_length (SoupMessageHeaders *hdrs,
  95. goffset content_length);
  96. typedef enum {
  97. SOUP_EXPECTATION_UNRECOGNIZED = (1 << 0),
  98. SOUP_EXPECTATION_CONTINUE = (1 << 1)
  99. } SoupExpectation;
  100. SOUP_AVAILABLE_IN_2_4
  101. SoupExpectation soup_message_headers_get_expectations (SoupMessageHeaders *hdrs);
  102. SOUP_AVAILABLE_IN_2_4
  103. void soup_message_headers_set_expectations (SoupMessageHeaders *hdrs,
  104. SoupExpectation expectations);
  105. typedef struct {
  106. goffset start;
  107. goffset end;
  108. } SoupRange;
  109. SOUP_AVAILABLE_IN_2_26
  110. gboolean soup_message_headers_get_ranges (SoupMessageHeaders *hdrs,
  111. goffset total_length,
  112. SoupRange **ranges,
  113. int *length);
  114. SOUP_AVAILABLE_IN_2_26
  115. void soup_message_headers_free_ranges (SoupMessageHeaders *hdrs,
  116. SoupRange *ranges);
  117. SOUP_AVAILABLE_IN_2_26
  118. void soup_message_headers_set_ranges (SoupMessageHeaders *hdrs,
  119. SoupRange *ranges,
  120. int length);
  121. SOUP_AVAILABLE_IN_2_26
  122. void soup_message_headers_set_range (SoupMessageHeaders *hdrs,
  123. goffset start,
  124. goffset end);
  125. SOUP_AVAILABLE_IN_2_26
  126. gboolean soup_message_headers_get_content_range (SoupMessageHeaders *hdrs,
  127. goffset *start,
  128. goffset *end,
  129. goffset *total_length);
  130. SOUP_AVAILABLE_IN_2_26
  131. void soup_message_headers_set_content_range (SoupMessageHeaders *hdrs,
  132. goffset start,
  133. goffset end,
  134. goffset total_length);
  135. SOUP_AVAILABLE_IN_2_26
  136. const char *soup_message_headers_get_content_type (SoupMessageHeaders *hdrs,
  137. GHashTable **params);
  138. SOUP_AVAILABLE_IN_2_26
  139. void soup_message_headers_set_content_type (SoupMessageHeaders *hdrs,
  140. const char *content_type,
  141. GHashTable *params);
  142. SOUP_AVAILABLE_IN_2_26
  143. gboolean soup_message_headers_get_content_disposition (SoupMessageHeaders *hdrs,
  144. char **disposition,
  145. GHashTable **params);
  146. SOUP_AVAILABLE_IN_2_26
  147. void soup_message_headers_set_content_disposition (SoupMessageHeaders *hdrs,
  148. const char *disposition,
  149. GHashTable *params);
  150. G_END_DECLS
  151. #endif /* SOUP_MESSAGE_HEADERS_H */