summaryrefslogtreecommitdiff
path: root/src/database/include/database.hpp
blob: cfef0a7de9c07b7e24c42f638f1debf7fc74731d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#pragma once

#include <memory>

#include "leveldb/cache.h"
#include "leveldb/db.h"
#include "result.hpp"

namespace database {

class Database {
 public:
  enum DatabaseError {
    FAILED_TO_OPEN,
  };
  static auto Open() -> cpp::result<Database*, DatabaseError>;

  ~Database();

 private:
  std::unique_ptr<leveldb::DB> db_;
  std::unique_ptr<leveldb::Cache> cache_;

  Database(leveldb::DB* db, leveldb::Cache* cache);
};

}  // namespace database