Does not leak memory with ctx and backend
[cascardo/atompub.git] / src / backend.c
index c0f0162..ded8229 100644 (file)
@@ -24,6 +24,28 @@ struct _atom_backend
   Atom * (*retrieve_resource) (AtomCtx *, IRI *);
 };
 
+AtomBackend *
+atom_backend_new ()
+{
+  AtomBackend *backend;
+  backend = g_slice_new (AtomBackend);
+  backend->retrieve_resource = NULL;
+  return backend;
+}
+
+void
+atom_backend_delete (AtomBackend *backend)
+{
+  g_slice_free (AtomBackend, backend);
+}
+
+void
+atom_backend_retrieve_resource_set (AtomBackend *backend,
+                                   Atom *retrieve_resource (AtomCtx *,
+                                                            IRI *))
+{
+  backend->retrieve_resource = retrieve_resource;
+}
 
 Atom *
 atom_retrieve_resource (AtomCtx *ctx, IRI *iri)