From: Thadeu Lima de Souza Cascardo Date: Sat, 9 Aug 2008 06:24:46 +0000 (-0300) Subject: Added backend interface to enumerate entries X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Fatompub.git;a=commitdiff_plain;h=032b6b660c2e666a6aa57812b8b84e08237d7cb8 Added backend interface to enumerate entries --- diff --git a/include/atompub/backend.h b/include/atompub/backend.h index 5099ccd..86fe4c5 100644 --- a/include/atompub/backend.h +++ b/include/atompub/backend.h @@ -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 *); diff --git a/src/backend.c b/src/backend.c index f8bcf35..c95e0e3 100644 --- a/src/backend.c +++ b/src/backend.c @@ -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; + } +}