soup-session-feature.h 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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_SESSION_FEATURE_H
  6. #define SOUP_SESSION_FEATURE_H 1
  7. #include <libsoup/soup-types.h>
  8. G_BEGIN_DECLS
  9. #define SOUP_TYPE_SESSION_FEATURE (soup_session_feature_get_type ())
  10. #define SOUP_SESSION_FEATURE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SOUP_TYPE_SESSION_FEATURE, SoupSessionFeature))
  11. #define SOUP_SESSION_FEATURE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SOUP_TYPE_SESSION_FEATURE, SoupSessionFeatureInterface))
  12. #define SOUP_IS_SESSION_FEATURE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SOUP_TYPE_SESSION_FEATURE))
  13. #define SOUP_IS_SESSION_FEATURE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SOUP_TYPE_SESSION_FEATURE))
  14. #define SOUP_SESSION_FEATURE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SOUP_TYPE_SESSION_FEATURE, SoupSessionFeatureInterface))
  15. typedef struct {
  16. GTypeInterface parent;
  17. /* methods */
  18. void (*attach) (SoupSessionFeature *feature,
  19. SoupSession *session);
  20. void (*detach) (SoupSessionFeature *feature,
  21. SoupSession *session);
  22. void (*request_queued) (SoupSessionFeature *feature,
  23. SoupSession *session,
  24. SoupMessage *msg);
  25. void (*request_started) (SoupSessionFeature *feature,
  26. SoupSession *session,
  27. SoupMessage *msg,
  28. SoupSocket *socket);
  29. void (*request_unqueued) (SoupSessionFeature *feature,
  30. SoupSession *session,
  31. SoupMessage *msg);
  32. gboolean (*add_feature) (SoupSessionFeature *feature,
  33. GType type);
  34. gboolean (*remove_feature) (SoupSessionFeature *feature,
  35. GType type);
  36. gboolean (*has_feature) (SoupSessionFeature *feature,
  37. GType type);
  38. } SoupSessionFeatureInterface;
  39. SOUP_AVAILABLE_IN_2_24
  40. GType soup_session_feature_get_type (void);
  41. SOUP_AVAILABLE_IN_2_24
  42. void soup_session_feature_attach (SoupSessionFeature *feature,
  43. SoupSession *session);
  44. SOUP_AVAILABLE_IN_2_24
  45. void soup_session_feature_detach (SoupSessionFeature *feature,
  46. SoupSession *session);
  47. SOUP_AVAILABLE_IN_2_34
  48. gboolean soup_session_feature_add_feature (SoupSessionFeature *feature,
  49. GType type);
  50. SOUP_AVAILABLE_IN_2_34
  51. gboolean soup_session_feature_remove_feature (SoupSessionFeature *feature,
  52. GType type);
  53. SOUP_AVAILABLE_IN_2_34
  54. gboolean soup_session_feature_has_feature (SoupSessionFeature *feature,
  55. GType type);
  56. G_END_DECLS
  57. #endif /* SOUP_SESSION_FEATURE_H */