Go to the documentation of this file.
16 #ifndef ENGINES_GRAPH_DB_DATABASE_WAL_WAL_H_
17 #define ENGINES_GRAPH_DB_DATABASE_WAL_WAL_H_
28 #include <unordered_map>
30 #include "glog/logging.h"
61 virtual std::string
type()
const = 0;
66 virtual void open(
const std::string& uri,
int thread_id) = 0;
72 virtual void close() = 0;
77 virtual bool append(
const char* data,
size_t length) = 0;
90 virtual void open(
const std::string& wal_uri) = 0;
92 virtual void close() = 0;
94 virtual uint32_t
last_ts()
const = 0;
116 const std::string& wal_uri);
122 static std::unordered_map<std::string, wal_writer_initializer_t>&
130 std::unique_ptr<IWalParser> (*)(
const std::string&
wal_dir);
137 const std::string& wal_uri);
143 static std::unordered_map<std::string, wal_parser_initializer_t>&
149 #endif // ENGINES_GRAPH_DB_DATABASE_WAL_WAL_H_
static void Finalize()
Definition: wal.cc:87
virtual ~IWalWriter()
Definition: wal.h:59
std::string get_wal_uri_path(const std::string &uri)
Definition: wal.cc:39
virtual bool append(const char *data, size_t length)=0
static std::unordered_map< std::string, wal_parser_initializer_t > & getKnownWalParsers()
Definition: wal.cc:111
static void Init()
Definition: wal.cc:50
std::string get_wal_uri_scheme(const std::string &uri)
Definition: wal.cc:25
static std::unique_ptr< IWalWriter > CreateWalWriter(const std::string &wal_uri)
Definition: wal.cc:54
static std::unordered_map< std::string, wal_writer_initializer_t > & getKnownWalWriters()
Definition: wal.cc:76
static void Finalize()
Definition: wal.cc:52
Definition: adj_list.h:23
virtual ~IWalParser()
Definition: wal.h:85
uint32_t timestamp
Definition: wal.h:46
virtual uint32_t last_ts() const =0
std::unique_ptr< IWalWriter >(*)() wal_writer_initializer_t
Definition: wal.h:128
char * ptr
Definition: wal.h:47
virtual const WalContentUnit & get_insert_wal(uint32_t ts) const =0
char * ptr
Definition: wal.h:41
std::unique_ptr< IWalWriter >(*)() wal_writer_initializer_t
Definition: wal.h:109
std::unique_ptr< IWalParser >(*)(const std::string &wal_dir) wal_parser_initializer_t
Definition: wal.h:130
static bool RegisterWalParser(const std::string &wal_parser_type, wal_parser_initializer_t initializer)
Definition: wal.cc:101
virtual void open(const std::string &wal_uri)=0
virtual const std::vector< UpdateWalUnit > & get_update_wals() const =0
static bool RegisterWalWriter(const std::string &wal_writer_type, wal_writer_initializer_t initializer)
Definition: wal.cc:66
static std::unique_ptr< IWalParser > CreateWalParser(const std::string &wal_uri)
Definition: wal.cc:89
size_t size
Definition: wal.h:48
static void Init()
Definition: wal.cc:85
size_t size
Definition: wal.h:42
std::string wal_dir(const std::string &work_dir)
Definition: file_names.h:196
virtual void open(const std::string &uri, int thread_id)=0
virtual std::string type() const =0