summaryrefslogtreecommitdiff
path: root/content/fetchers/data.c
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2014-06-19 18:27:24 +0100
committerVincent Sanders <vince@kyllikki.org>2014-06-19 18:27:24 +0100
commit4b2101ba6ab62ae26d82cc8b86e0e61e9c007156 (patch)
treee46413e8f7a99d68f26f4b6e4f898b8400758933 /content/fetchers/data.c
parent904cefd388aa613126b69c858e489c5867163a87 (diff)
downloadnetsurf-4b2101ba6ab62ae26d82cc8b86e0e61e9c007156.tar.gz
netsurf-4b2101ba6ab62ae26d82cc8b86e0e61e9c007156.tar.bz2
clean up the fetcher factory and improve its API
Diffstat (limited to 'content/fetchers/data.c')
-rw-r--r--content/fetchers/data.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/content/fetchers/data.c b/content/fetchers/data.c
index f7ae17150..94ba63827 100644
--- a/content/fetchers/data.c
+++ b/content/fetchers/data.c
@@ -31,6 +31,7 @@
#include "utils/config.h"
#include "content/fetch.h"
+#include "content/fetchers.h"
#include "content/fetchers/data.h"
#include "content/urldb.h"
#include "desktop/netsurf.h"
@@ -324,17 +325,19 @@ static void fetch_data_poll(lwc_string *scheme)
} while ( (c = next) != ring && ring != NULL);
}
-void fetch_data_register(void)
+nserror fetch_data_register(void)
{
lwc_string *scheme = lwc_string_ref(corestring_lwc_data);
-
- fetch_add_fetcher(scheme,
- fetch_data_initialise,
- fetch_data_can_fetch,
- fetch_data_setup,
- fetch_data_start,
- fetch_data_abort,
- fetch_data_free,
- fetch_data_poll,
- fetch_data_finalise);
+ const struct fetcher_operation_table fetcher_ops = {
+ .initialise = fetch_data_initialise,
+ .acceptable = fetch_data_can_fetch,
+ .setup = fetch_data_setup,
+ .start = fetch_data_start,
+ .abort = fetch_data_abort,
+ .free = fetch_data_free,
+ .poll = fetch_data_poll,
+ .finalise = fetch_data_finalise
+ };
+
+ return fetcher_add(scheme, &fetcher_ops);
}