soup-logger.h 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
  2. /*
  3. * Copyright (C) 2008 Red Hat, Inc.
  4. */
  5. #ifndef SOUP_LOGGER_H
  6. #define SOUP_LOGGER_H 1
  7. #include <libsoup/soup-types.h>
  8. G_BEGIN_DECLS
  9. #define SOUP_TYPE_LOGGER (soup_logger_get_type ())
  10. #define SOUP_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SOUP_TYPE_LOGGER, SoupLogger))
  11. #define SOUP_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SOUP_TYPE_LOGGER, SoupLoggerClass))
  12. #define SOUP_IS_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SOUP_TYPE_LOGGER))
  13. #define SOUP_IS_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), SOUP_TYPE_LOGGER))
  14. #define SOUP_LOGGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SOUP_TYPE_LOGGER, SoupLoggerClass))
  15. typedef enum {
  16. SOUP_LOGGER_LOG_NONE,
  17. SOUP_LOGGER_LOG_MINIMAL,
  18. SOUP_LOGGER_LOG_HEADERS,
  19. SOUP_LOGGER_LOG_BODY
  20. } SoupLoggerLogLevel;
  21. typedef struct {
  22. GObject parent;
  23. } SoupLogger;
  24. typedef struct {
  25. GObjectClass parent_class;
  26. /* Padding for future expansion */
  27. void (*_libsoup_reserved1) (void);
  28. void (*_libsoup_reserved2) (void);
  29. void (*_libsoup_reserved3) (void);
  30. void (*_libsoup_reserved4) (void);
  31. } SoupLoggerClass;
  32. typedef SoupLoggerLogLevel (*SoupLoggerFilter) (SoupLogger *logger,
  33. SoupMessage *msg,
  34. gpointer user_data);
  35. typedef void (*SoupLoggerPrinter) (SoupLogger *logger,
  36. SoupLoggerLogLevel level,
  37. char direction,
  38. const char *data,
  39. gpointer user_data);
  40. SOUP_AVAILABLE_IN_2_4
  41. GType soup_logger_get_type (void);
  42. SOUP_AVAILABLE_IN_2_4
  43. SoupLogger *soup_logger_new (SoupLoggerLogLevel level,
  44. int max_body_size);
  45. #ifndef SOUP_DISABLE_DEPRECATED
  46. SOUP_AVAILABLE_IN_2_4
  47. SOUP_DEPRECATED_IN_2_24_FOR(soup_session_add_feature)
  48. void soup_logger_attach (SoupLogger *logger,
  49. SoupSession *session);
  50. SOUP_AVAILABLE_IN_2_4
  51. SOUP_DEPRECATED_IN_2_24_FOR(soup_session_remove_feature)
  52. void soup_logger_detach (SoupLogger *logger,
  53. SoupSession *session);
  54. #endif
  55. SOUP_AVAILABLE_IN_2_4
  56. void soup_logger_set_request_filter (SoupLogger *logger,
  57. SoupLoggerFilter request_filter,
  58. gpointer filter_data,
  59. GDestroyNotify destroy);
  60. SOUP_AVAILABLE_IN_2_4
  61. void soup_logger_set_response_filter (SoupLogger *logger,
  62. SoupLoggerFilter response_filter,
  63. gpointer filter_data,
  64. GDestroyNotify destroy);
  65. SOUP_AVAILABLE_IN_2_4
  66. void soup_logger_set_printer (SoupLogger *logger,
  67. SoupLoggerPrinter printer,
  68. gpointer printer_data,
  69. GDestroyNotify destroy);
  70. G_END_DECLS
  71. #endif /* SOUP_LOGGER_H */