#include <atompub/atom.h>
+
#include <glib.h>
+#include <string.h>
+
struct _atom_backend
{
AtomEntry * (*retrieve_entry) (AtomCtx *, IRI *);
backend->enumerate_entries (ctx, entries, len);
return;
}
+ if (entries)
+ *entries = NULL;
+ if (len)
+ *len = 0;
}
AtomFeed *
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);
+ if (feed == NULL)
+ return NULL;
+ res = atom_resource_new_from_feed (feed);
+ atom_feed_delete (feed);
+ }
+ else
+ {
+ AtomEntry *entry;
+ entry = atom_retrieve_entry (ctx, iri);
+ if (entry == NULL)
+ return NULL;
+ res = atom_resource_new_from_entry (entry);
+ atom_entry_delete (entry);
+ }
+ return res;
+}