diff options
author | Dan Winship <danw@gnome.org> | 2010-06-07 16:45:22 -0400 |
---|---|---|
committer | Dan Winship <danw@gnome.org> | 2010-12-09 12:04:51 +0100 |
commit | 65d5f29c527ab6da5991696026d6bdbef903d169 (patch) | |
tree | 0d7eeb16b8f63688b757ecb2323d653e8a40c053 /libsoup/soup-session-feature.h | |
parent | f5a0053364adfa24014f0c595c3a2890d10e437c (diff) | |
download | libsoup-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.h | 54 |
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 |