X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Fatompub.git;a=blobdiff_plain;f=atom%2Ffrontend.c;h=64d33d5e244aae4f6ee9c0d925abad0a32262cdd;hp=e530aa87685ba8da5dc08670b16e29e112f2bb48;hb=79404676f7ce53a9e660d69a2daed9426d2fd699;hpb=4a1a4691fe9acaa20428e19256f9ec6dc2485485 diff --git a/atom/frontend.c b/atom/frontend.c index e530aa8..64d33d5 100644 --- a/atom/frontend.c +++ b/atom/frontend.c @@ -28,6 +28,9 @@ struct _atom_frontend void (*map_entries) (AtomCtx *, char **, AtomEntry **, size_t); int (*is_feed) (AtomCtx *, char *); AtomRequest * (*get_request) (AtomCtx *); + void (*handle_error) (AtomCtx *); + void (*handle_entry) (AtomCtx *, AtomEntry *); + void (*handle_feed) (AtomCtx *, AtomFeed *); }; AtomFrontend * @@ -71,6 +74,27 @@ atom_frontend_get_request_set (AtomFrontend *frontend, frontend->get_request = get_request; } +void +atom_frontend_handle_error_set (AtomFrontend *frontend, + void handle_error (AtomCtx *)) +{ + frontend->handle_error = handle_error; +} + +void +atom_frontend_handle_entry_set (AtomFrontend *frontend, + void handle_entry (AtomCtx *, AtomEntry *)) +{ + frontend->handle_entry = handle_entry; +} + +void +atom_frontend_handle_feed_set (AtomFrontend *frontend, + void handle_feed (AtomCtx *, AtomFeed *)) +{ + frontend->handle_feed = handle_feed; +} + void atom_frontend_map_entries (AtomCtx *ctx, char ** reqs, AtomEntry ** entries, size_t len) @@ -111,3 +135,36 @@ atom_get_request (AtomCtx *ctx) } return NULL; } + +void +atom_handle_error (AtomCtx *ctx) +{ + AtomFrontend *frontend; + frontend = atom_frontend (ctx); + if (frontend && frontend->handle_error) + { + frontend->handle_error (ctx); + } +} + +void +atom_handle_entry (AtomCtx *ctx, AtomEntry *entry) +{ + AtomFrontend *frontend; + frontend = atom_frontend (ctx); + if (frontend && frontend->handle_entry) + { + frontend->handle_entry (ctx, entry); + } +} + +void +atom_handle_feed (AtomCtx *ctx, AtomFeed *feed) +{ + AtomFrontend *frontend; + frontend = atom_frontend (ctx); + if (frontend && frontend->handle_feed) + { + frontend->handle_feed (ctx, feed); + } +}