xale-db 1.0
minimal SQL engine, written in c++
Loading...
Searching...
No Matches
BinaryFileManager.h
Go to the documentation of this file.
1#ifndef STORAGE_FILE_MANAGER_H
2#define STORAGE_FILE_MANAGER_H
3
6#include <Logger.h>
7#include <fstream>
8#include <filesystem>
9#include <mutex>
10#include <cstdint>
11
12namespace Xale::Storage
13{
18 {
19 public:
24
26
31
37 bool open(const std::filesystem::path& path) override;
38
42 void close() override;
43
51 std::size_t readAt(std::uint64_t offset, void* buffer, std::size_t size) override;
52
59 std::size_t writeAt(std::uint64_t offset, const void* buffer, std::size_t size) override;
60
65 bool sync() override;
66
70 std::uint64_t size() const override;
71
73 private:
74 mutable std::mutex _mutex;
75 std::filesystem::path _path;
76 std::fstream _file;
77 Xale::Logger::Logger<BinaryFileManager>& _logger;
78 };
79}
80
81#endif // STORAGE_FILE_MANAGER_H
std::uint64_t size() const override
Gets the size of the binary file.
Definition BinaryFileManager.cpp:147
void close() override
Closes the currently opened binary file.
Definition BinaryFileManager.cpp:50
BinaryFileManager(const BinaryFileManager &)=delete
std::size_t readAt(std::uint64_t offset, void *buffer, std::size_t size) override
Reads data from the binary file at the specified offset into the provided buffer.
Definition BinaryFileManager.cpp:59
BinaryFileManager & operator=(const BinaryFileManager &)=delete
bool open(const std::filesystem::path &path) override
Opens a binary file at the specified path.
Definition BinaryFileManager.cpp:17
bool sync() override
Synchronizes the binary file to ensure all data is written to disk.
Definition BinaryFileManager.cpp:133
~BinaryFileManager()
Destructor for BinaryFileManager.
Definition BinaryFileManager.cpp:9
BinaryFileManager()
Constructor for BinaryFileManager.
Definition BinaryFileManager.cpp:5
std::size_t writeAt(std::uint64_t offset, const void *buffer, std::size_t size) override
Writes data to the binary file at the specified offset from the provided buffer.
Definition BinaryFileManager.cpp:92
Interface for file management operations.
Definition IFileManager.h:13
Definition BinaryFileManager.h:13