Preserve the "timestamp" database field when expiring segments.
[cumulus.git] / localdb.h
index 8a45e0e..3f5e5ba 100644 (file)
--- a/localdb.h
+++ b/localdb.h
 
 class LocalDb {
 public:
-    void Open(const char *path);
+    void Open(const char *path, const char *snapshot_name);
     void Close();
     void StoreObject(const ObjectReference& ref,
-                     const std::string &checksum, int64_t size);
+                     const std::string &checksum, int64_t size, double age);
+    ObjectReference FindObject(const std::string &checksum, int64_t size);
+    bool IsOldObject(const std::string &checksum, int64_t size, double *age);
+    void UseObject(const ObjectReference& ref);
 private:
     sqlite3 *db;
+    int64_t snapshotid;
+
+    sqlite3_stmt *Prepare(const char *sql);
+    int64_t SegmentToId(const std::string &segment);
+    std::string IdToSegment(int64_t segmentid);
 };
 
 #endif // _LBS_LOCALDB_H