 |
SWC-DB
v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
|
Go to the documentation of this file.
6 #ifndef swcdb_fs_FileSystem_h
7 #define swcdb_fs_FileSystem_h
17 namespace SWC {
namespace FS {
68 #define ADD_OPTION(_N) \
70 ImplOptions& add_##_N() noexcept;\
71 bool SWC_PURE_FUNC has_##_N() const noexcept;
101 class FileSystem :
public std::enable_shared_from_this<FileSystem> {
104 typedef std::shared_ptr<FileSystem>
Ptr;
131 virtual std::
string to_string() const = 0;
133 virtual
void get_abspath(const std::
string& name, std::
string& abspath,
144 virtual
bool exists(
int& err, const std::
string& name) = 0;
146 const std::
string& name);
148 virtual
void remove(
int& err, const std::
string& name) = 0;
150 const std::
string& name);
152 virtual
size_t length(
int& err, const std::
string& name) = 0;
154 const std::
string& name);
158 virtual
void mkdirs(
int& err, const std::
string& name) = 0;
160 const std::
string& name);
162 virtual
void readdir(
int& err, const std::
string& name,
165 const std::
string& name);
167 virtual
void rmdir(
int& err, const std::
string& name) = 0;
169 const std::
string& name);
172 const std::
string& to) = 0;
174 const std::
string&
from, const std::
string& to);
186 virtual
void read(Callback::
ReadAllCb_t&& cb, const std::
string& name);
189 uint64_t offset, uint32_t amount,
192 uint64_t offset, uint32_t amount,
196 uint64_t offset, uint32_t amount);
199 uint8_t replication) = 0;
201 uint8_t replication);
208 void *dst,
size_t amount) = 0;
217 uint64_t offset,
void *dst,
size_t amount) = 0;
223 uint64_t offset,
size_t amount);
254 #ifdef SWC_IMPL_SOURCE
259 #endif // swcdb_fs_FileSystem_h
std::function< void(int)> OpenCb_t
std::shared_ptr< FileSystem > Ptr
ADD_OPTION(async_exists) ADD_OPTION(async_remove) ADD_OPTION(async_length) ADD_OPTION(async_mkdirs) ADD_OPTION(async_readdir) ADD_OPTION(async_rmdir) ADD_OPTION(async_rename) ADD_OPTION(async_write) ADD_OPTION(async_readall) ADD_OPTION(async_combi_pread) ADD_OPTION(async_create) ADD_OPTION(async_open) ADD_OPTION(async_read) ADD_OPTION(async_pread) ADD_OPTION(async_append) ADD_OPTION(async_seek) ADD_OPTION(async_flush) ADD_OPTION(async_sync) ADD_OPTION(async_close) FileSystem
std::function< void(int, StaticBuffer &&)> WriteCb_t
Type fs_type(const std::string &fs_name)
virtual size_t append(int &err, SmartFd::Ptr &smartfd, StaticBuffer &buffer, Flags flags)=0
std::function< void(int, StaticBuffer &&)> PreadCb_t
void default_read(int &err, const std::string &name, StaticBuffer *dst)
std::shared_ptr< Settings > Ptr
std::function< void(int, StaticBuffer &&)> CombiPreadCb_t
std::function< void(int, StaticBuffer &&)> ReadCb_t
std::function< void(int, size_t)> LengthCb_t
std::function< void(int)> SyncCb_t
FileSystem(const FileSystem &)=delete
void default_combi_pread(int &err, SmartFd::Ptr &smartfd, uint64_t offset, uint32_t amount, StaticBuffer *dst)
Configurables & operator=(const Configurables &)=delete
virtual void seek(int &err, SmartFd::Ptr &smartfd, size_t offset)=0
const Config::Property::Value_int32_g::Ptr cfg_fds_max
FileSystem(FileSystem &&)=delete
std::function< void(int, bool)> ExistsCb_t
virtual void open(int &err, SmartFd::Ptr &smartfd)=0
Configurables(const Config::Settings::Ptr &a_settings) noexcept
std::function< void(int)> CloseCb_t
virtual void sync(int &err, SmartFd::Ptr &smartfd)=0
std::function< void(int)> RenameCb_t
virtual Type SWC_CONST_FUNC get_type() const noexcept
virtual void combi_pread(int &err, SmartFd::Ptr &smartfd, uint64_t offset, uint32_t amount, StaticBuffer *dst)=0
virtual size_t pread(int &err, SmartFd::Ptr &smartfd, uint64_t offset, void *dst, size_t amount)=0
@ OPEN_FLAG_VERIFY_CHECKSUM
virtual void rmdir(int &err, const std::string &name)=0
The SWC-DB C++ namespace 'SWC'.
virtual void read(int &err, const std::string &name, StaticBuffer *dst)=0
FileSystem & operator=(const FileSystem &)=delete
virtual void flush(int &err, SmartFd::Ptr &smartfd)=0
Config::Settings::Ptr settings
std::function< void(int, StaticBuffer &&)> ReadAllCb_t
virtual std::string to_string() const =0
Config::Property::Value_int32_g::Ptr cfg_fds_max
Configurables(Configurables &&)=delete
std::function< void(int, DirentList &&)> ReaddirCb_t
std::function< void(int)> RemoveCb_t
Configurables & operator=(Configurables &&)=delete
virtual ~FileSystem() noexcept
std::function< void(int)> RmdirCb_t
ImplOptions(bool has_all=false) noexcept
void fd_open_incr() noexcept
virtual Type get_type_underlying() const noexcept
SWC::FS::FileSystem * fs_make_new_t(SWC::FS::Configurables *)
virtual void write(int &err, SmartFd::Ptr &smartfd, uint8_t replication, StaticBuffer &buffer)=0
const Config::Settings::Ptr settings
std::function< void(int)> CreateCb_t
virtual void remove(int &err, const std::string &name)=0
virtual void mkdirs(int &err, const std::string &name)=0
void default_write(int &err, SmartFd::Ptr &smartfd, uint8_t replication, StaticBuffer &buffer)
virtual bool exists(int &err, const std::string &name)=0
Comp from(const char **buf, uint32_t *remainp, uint8_t extended=0x00) noexcept
FileSystem(const Configurables *config, ImplOptions impl_opts)
std::string normalize_pathname(std::string s)
std::function< void(int)> FlushCb_t
Configurables(const Configurables &)=delete
void fd_open_decr() noexcept
virtual void create(int &err, SmartFd::Ptr &smartfd, uint8_t replication)=0
FileSystem & operator=(FileSystem &&)=delete
const std::string path_root
virtual void close(int &err, SmartFd::Ptr &smartfd)=0
size_t fds_open() const noexcept
const std::string path_data
virtual void rename(int &err, const std::string &from, const std::string &to)=0
~Configurables() noexcept
virtual void get_abspath(const std::string &name, std::string &abspath, size_t reserve=0)
virtual size_t length(int &err, const std::string &name)=0
std::function< void(int, size_t)> AppendCb_t
const ImplOptions impl_options
std::function< void(int)> MkdirsCb_t
size_t default_pread(int &err, SmartFd::Ptr &smartfd, uint64_t offset, StaticBuffer *dst, size_t amount)
const char *SWC_CONST_FUNC to_string(Type typ) noexcept
virtual void readdir(int &err, const std::string &name, DirentList &results)=0
bool need_fds() const noexcept