Flex  0.17.9
local_wal_writer.h
Go to the documentation of this file.
1 
16 #ifndef ENGINES_GRAPH_DB_DATABASE_WAL_LOCAL_WAL_WRITER_H_
17 #define ENGINES_GRAPH_DB_DATABASE_WAL_LOCAL_WAL_WRITER_H_
18 
19 #include <memory>
20 #include <unordered_map>
22 
23 namespace gs {
24 
25 class LocalWalWriter : public IWalWriter {
26  public:
27  static std::unique_ptr<IWalWriter> Make();
28 
29  static constexpr size_t TRUNC_SIZE = 1ul << 30;
30  LocalWalWriter() = default;
32 
33  void open(const std::string& wal_uri, int thread_id) override;
34  void close() override;
35  bool append(const char* data, size_t length) override;
36  std::string type() const override { return "file"; }
37 
38  private:
39  int fd_;
40  size_t file_size_;
41  size_t file_used_;
42 
43  static const bool registered_;
44 };
45 
46 } // namespace gs
47 
48 #endif // ENGINES_GRAPH_DB_DATABASE_WAL_LOCAL_WAL_WRITER_H_
gs::LocalWalWriter::close
void close() override
Definition: local_wal_writer.cc:53
gs
Definition: adj_list.h:23
gs::LocalWalWriter::LocalWalWriter
LocalWalWriter()=default
gs::LocalWalWriter
Definition: local_wal_writer.h:25
gs::LocalWalWriter::Make
static std::unique_ptr< IWalWriter > Make()
Definition: local_wal_writer.cc:24
gs::LocalWalWriter::open
void open(const std::string &wal_uri, int thread_id) override
Definition: local_wal_writer.cc:28
wal.h
gs::LocalWalWriter::registered_
static const bool registered_
Definition: local_wal_writer.h:43
gs::LocalWalWriter::file_used_
size_t file_used_
Definition: local_wal_writer.h:41
gs::LocalWalWriter::file_size_
size_t file_size_
Definition: local_wal_writer.h:40
gs::LocalWalWriter::TRUNC_SIZE
static constexpr size_t TRUNC_SIZE
Definition: local_wal_writer.h:29
gs::LocalWalWriter::fd_
int fd_
Definition: local_wal_writer.h:39
gs::LocalWalWriter::type
std::string type() const override
Definition: local_wal_writer.h:36
gs::LocalWalWriter::~LocalWalWriter
~LocalWalWriter()
Definition: local_wal_writer.h:31
gs::LocalWalWriter::append
bool append(const char *data, size_t length) override
Definition: local_wal_writer.cc:66
gs::IWalWriter
Definition: wal.h:57