X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Fatompub.git;a=blobdiff_plain;f=src%2Fbackend.c;h=30ba7a76756adaddd5ba0e2cb97efb6631cafa5e;hp=d1ffec7ee2a7bd3cc3d6a046c57261bc1232d44f;hb=169c723f82605fd9164c5bab08a4049aef29ad59;hpb=f907a9f051e3c7155075597dcaa6010acded083d diff --git a/src/backend.c b/src/backend.c index d1ffec7..30ba7a7 100644 --- a/src/backend.c +++ b/src/backend.c @@ -18,8 +18,11 @@ #include + #include +#include + struct _atom_backend { AtomEntry * (*retrieve_entry) (AtomCtx *, IRI *); @@ -91,3 +94,26 @@ atom_retrieve_feed (AtomCtx *ctx) atom_feed_entry_append_array (feed, entries, len); return feed; } + +AtomResource * +atom_retrieve_resource (AtomCtx *ctx, IRI *iri) +{ + AtomResource *res; + char * path; + path = iri_get_path (iri); + if (!strcmp (path, "/")) + { + AtomFeed *feed; + feed = atom_retrieve_feed (ctx); + res = atom_resource_new_from_feed (feed); + atom_feed_delete (feed); + } + else + { + AtomEntry *entry; + entry = atom_retrieve_entry (ctx, iri); + res = atom_resource_new_from_entry (entry); + atom_entry_delete (entry); + } + return res; +}