X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=localdb.h;h=1bfaf3b24e0cf3a77bb30ebecbbaabf816cd250d;hb=e29cf5eefb0ff3be77a548edb6bbd89ea58c02a9;hp=eb0955deb3151810803f5ffdbe6bb232b3e8ad9d;hpb=6a181a1eb21ac5f9f4f742281b6de841dac9a3c8;p=cumulus.git diff --git a/localdb.h b/localdb.h index eb0955d..1bfaf3b 100644 --- a/localdb.h +++ b/localdb.h @@ -21,16 +21,28 @@ class LocalDb { public: - void Open(const char *path, const char *snapshot_name); + void Open(const char *path, const char *snapshot_name, + const char *snapshot_scheme, double intent); 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, + int *group); + bool IsAvailable(const ObjectReference &ref); void UseObject(const ObjectReference& ref); + void UseSegment(const std::string &segment, double utilization); + + void SetSegmentChecksum(const std::string &segment, const std::string &path, + const std::string &checksum, int size); + bool GetSegmentChecksum(const std::string &segment, + std::string *seg_path, std::string *seg_checksum); private: sqlite3 *db; int64_t snapshotid; + sqlite3_stmt *Prepare(const char *sql); + void ReportError(int rc); int64_t SegmentToId(const std::string &segment); std::string IdToSegment(int64_t segmentid); };