summaryrefslogtreecommitdiff
path: root/libsoup/soup-session-feature.h
diff options
context:
space:
mode:
authorDan Winship <danw@gnome.org>2010-06-07 16:45:22 -0400
committerDan Winship <danw@gnome.org>2010-12-09 12:04:51 +0100
commit65d5f29c527ab6da5991696026d6bdbef903d169 (patch)
tree0d7eeb16b8f63688b757ecb2323d653e8a40c053 /libsoup/soup-session-feature.h
parentf5a0053364adfa24014f0c595c3a2890d10e437c (diff)
downloadlibsoup-65d5f29c527ab6da5991696026d6bdbef903d169.tar.gz
SoupSession: allow features to implement "subfeatures"
Let soup_session_add_feature_by_type() (and remove()) add and remove "features" from existing features. Eg, to add/remove auth types or Content-Encodings.
Diffstat (limited to 'libsoup/soup-session-feature.h')
-rw-r--r--libsoup/soup-session-feature.h54
1 files changed, 34 insertions, 20 deletions
diff --git a/libsoup/soup-session-feature.h b/libsoup/soup-session-feature.h
index 1db776ce..aa64aa0f 100644
--- a/libsoup/soup-session-feature.h
+++ b/libsoup/soup-session-feature.h
@@ -21,30 +21,44 @@ typedef struct {
GTypeInterface parent;
/* methods */
- void (*attach) (SoupSessionFeature *feature,
- SoupSession *session);
- void (*detach) (SoupSessionFeature *feature,
- SoupSession *session);
-
- void (*request_queued) (SoupSessionFeature *feature,
- SoupSession *session,
- SoupMessage *msg);
- void (*request_started) (SoupSessionFeature *feature,
- SoupSession *session,
- SoupMessage *msg,
- SoupSocket *socket);
- void (*request_unqueued) (SoupSessionFeature *feature,
- SoupSession *session,
- SoupMessage *msg);
+ void (*attach) (SoupSessionFeature *feature,
+ SoupSession *session);
+ void (*detach) (SoupSessionFeature *feature,
+ SoupSession *session);
+
+ void (*request_queued) (SoupSessionFeature *feature,
+ SoupSession *session,
+ SoupMessage *msg);
+ void (*request_started) (SoupSessionFeature *feature,
+ SoupSession *session,
+ SoupMessage *msg,
+ SoupSocket *socket);
+ void (*request_unqueued) (SoupSessionFeature *feature,
+ SoupSession *session,
+ SoupMessage *msg);
+
+ gboolean (*add_feature) (SoupSessionFeature *feature,
+ GType type);
+ gboolean (*remove_feature) (SoupSessionFeature *feature,
+ GType type);
+ gboolean (*has_feature) (SoupSessionFeature *feature,
+ GType type);
} SoupSessionFeatureInterface;
-GType soup_session_feature_get_type (void);
+GType soup_session_feature_get_type (void);
+
+void soup_session_feature_attach (SoupSessionFeature *feature,
+ SoupSession *session);
+void soup_session_feature_detach (SoupSessionFeature *feature,
+ SoupSession *session);
-void soup_session_feature_attach (SoupSessionFeature *feature,
- SoupSession *session);
-void soup_session_feature_detach (SoupSessionFeature *feature,
- SoupSession *session);
+gboolean soup_session_feature_add_feature (SoupSessionFeature *feature,
+ GType type);
+gboolean soup_session_feature_remove_feature (SoupSessionFeature *feature,
+ GType type);
+gboolean soup_session_feature_has_feature (SoupSessionFeature *feature,
+ GType type);
G_END_DECLS