aboutsummaryrefslogtreecommitdiffstats
path: root/store.go
diff options
context:
space:
mode:
Diffstat (limited to 'store.go')
-rw-r--r--store.go22
1 files changed, 22 insertions, 0 deletions
diff --git a/store.go b/store.go
new file mode 100644
index 0000000..3fb279f
--- /dev/null
+++ b/store.go
@@ -0,0 +1,22 @@
+package main
+
+var bomstore BomStore
+
+// TODO: who owns returned BOMs? Caller? need "free" methods?
+type BomStore interface {
+ GetStub(user, name ShortName) (*BomStub, error)
+ GetHead(user, name ShortName) (*Bom, error)
+ GetBom(user, name, version ShortName) (*Bom, error)
+ Persist(bom *Bom) error
+}
+
+/*
+// Dummy BomStore backed by hashtable in memory, for testing and demo purposes
+type MemoryBomStore map[string] Bom
+*/
+
+// Basic BomStore backend using a directory structure of JSON files saved to
+// disk.
+type JSONFileBomStore struct {
+ rootPath string
+}