Added backend interface to enumerate entries
authorThadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Sat, 9 Aug 2008 06:24:46 +0000 (03:24 -0300)
committerThadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Sat, 9 Aug 2008 08:34:39 +0000 (05:34 -0300)
include/atompub/backend.h
src/backend.c

index 5099ccd..86fe4c5 100644 (file)
@@ -30,7 +30,10 @@ AtomBackend *atom_backend_new (void);
 void atom_backend_delete (AtomBackend *);
 void atom_backend_retrieve_resource_set (AtomBackend *,
                                         Atom * (AtomCtx *, IRI *));
+void atom_backend_enumerate_entries_set (AtomBackend *,
+                                        void (AtomCtx *, Atom ***, size_t *));
 Atom * atom_retrieve_resource (AtomCtx *, IRI *);
+void atom_enumerate_entries (AtomCtx *, Atom ***, size_t *);
 AtomBackend * atom_backend (AtomCtx *);
 void atom_backend_set (AtomCtx *, AtomBackend *);
 
index f8bcf35..c95e0e3 100644 (file)
@@ -23,6 +23,7 @@
 struct _atom_backend
 {
   Atom * (*retrieve_resource) (AtomCtx *, IRI *);
+  void (*enumerate_entries) (AtomCtx *, Atom ***, size_t *);
 };
 
 AtomBackend *
@@ -31,6 +32,7 @@ atom_backend_new ()
   AtomBackend *backend;
   backend = g_slice_new (AtomBackend);
   backend->retrieve_resource = NULL;
+  backend->enumerate_entries = NULL;
   return backend;
 }
 
@@ -48,6 +50,14 @@ atom_backend_retrieve_resource_set (AtomBackend *backend,
   backend->retrieve_resource = retrieve_resource;
 }
 
+void
+atom_backend_enumerate_entries_set (AtomBackend *backend,
+                                   void enumerate_entries (AtomCtx *,
+                                                           Atom ***, size_t*))
+{
+  backend->enumerate_entries = enumerate_entries;
+}
+
 Atom *
 atom_retrieve_resource (AtomCtx *ctx, IRI *iri)
 {
@@ -57,3 +67,15 @@ atom_retrieve_resource (AtomCtx *ctx, IRI *iri)
     return backend->retrieve_resource (ctx, iri);
   return NULL;
 }
+
+void
+atom_backend_enumerate_entries (AtomCtx *ctx, Atom *** entries, size_t *len)
+{
+  AtomBackend *backend;
+  backend = atom_backend (ctx);
+  if (backend && backend->enumerate_entries)
+    {
+      backend->enumerate_entries (ctx, entries, len);
+      return;
+    }
+}