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.c | |
| 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.c')
| -rw-r--r-- | libsoup/soup-session-feature.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/libsoup/soup-session-feature.c b/libsoup/soup-session-feature.c index f5d12393..1db9c204 100644 --- a/libsoup/soup-session-feature.c +++ b/libsoup/soup-session-feature.c @@ -164,3 +164,42 @@ soup_session_feature_detach (SoupSessionFeature *feature, { SOUP_SESSION_FEATURE_GET_CLASS (feature)->detach (feature, session); } + +gboolean +soup_session_feature_add_feature (SoupSessionFeature *feature, + GType type) +{ + SoupSessionFeatureInterface *feature_iface = + SOUP_SESSION_FEATURE_GET_CLASS (feature); + + if (feature_iface->add_feature) + return feature_iface->add_feature (feature, type); + else + return FALSE; +} + +gboolean +soup_session_feature_remove_feature (SoupSessionFeature *feature, + GType type) +{ + SoupSessionFeatureInterface *feature_iface = + SOUP_SESSION_FEATURE_GET_CLASS (feature); + + if (feature_iface->remove_feature) + return feature_iface->remove_feature (feature, type); + else + return FALSE; +} + +gboolean +soup_session_feature_has_feature (SoupSessionFeature *feature, + GType type) +{ + SoupSessionFeatureInterface *feature_iface = + SOUP_SESSION_FEATURE_GET_CLASS (feature); + + if (feature_iface->has_feature) + return feature_iface->has_feature (feature, type); + else + return FALSE; +} |
