soup-logger.h 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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. #define SOUP_LOGGER_LEVEL "level"
  43. #define SOUP_LOGGER_MAX_BODY_SIZE "max-body-size"
  44. SOUP_AVAILABLE_IN_2_4
  45. SoupLogger *soup_logger_new (SoupLoggerLogLevel level,
  46. int max_body_size);
  47. #ifndef SOUP_DISABLE_DEPRECATED
  48. SOUP_AVAILABLE_IN_2_4
  49. SOUP_DEPRECATED_IN_2_24_FOR(soup_session_add_feature)
  50. void soup_logger_attach (SoupLogger *logger,
  51. SoupSession *session);
  52. SOUP_AVAILABLE_IN_2_4
  53. SOUP_DEPRECATED_IN_2_24_FOR(soup_session_remove_feature)
  54. void soup_logger_detach (SoupLogger *logger,
  55. SoupSession *session);
  56. #endif
  57. SOUP_AVAILABLE_IN_2_4
  58. void soup_logger_set_request_filter (SoupLogger *logger,
  59. SoupLoggerFilter request_filter,
  60. gpointer filter_data,
  61. GDestroyNotify destroy);
  62. SOUP_AVAILABLE_IN_2_4
  63. void soup_logger_set_response_filter (SoupLogger *logger,
  64. SoupLoggerFilter response_filter,
  65. gpointer filter_data,
  66. GDestroyNotify destroy);
  67. SOUP_AVAILABLE_IN_2_4
  68. void soup_logger_set_printer (SoupLogger *logger,
  69. SoupLoggerPrinter printer,
  70. gpointer printer_data,
  71. GDestroyNotify destroy);
  72. G_END_DECLS
  73. #endif /* __SOUP_LOGGER_H__ */