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:
23 bool open(const std::filesystem::path& path) override;
24 void close() override;
25 std::size_t readAt(std::uint64_t offset, void* buffer, std::size_t size) override;
26 std::size_t writeAt(std::uint64_t offset, const void* buffer, std::size_t size) override;
27 bool sync() override;
28 std::uint64_t size() const override;
30 private:
31 mutable std::mutex _mutex;
32 std::filesystem::path _path;
33 std::fstream _file;
34 Xale::Logger::Logger<BinaryFileManager>& _logger;
35 };
36}
37
38#endif // STORAGE_FILE_MANAGER_H
std::uint64_t size() const override
Gets the size of the binary file.
Definition FileManager.cpp:181
void close() override
Closes the currently opened binary file.
Definition FileManager.cpp:64
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 FileManager.cpp:80
BinaryFileManager & operator=(const BinaryFileManager &)=delete
bool open(const std::filesystem::path &path) override
Opens a binary file at the specified path.
Definition FileManager.cpp:28
bool sync() override
Synchronizes the binary file to ensure all data is written to disk.
Definition FileManager.cpp:164
~BinaryFileManager()
Destructor for BinaryFileManager.
Definition FileManager.cpp:15
BinaryFileManager()
Constructor for BinaryFileManager.
Definition FileManager.cpp:8
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 FileManager.cpp:119
Interface for file management operations.
Definition IFileManager.h:13
Definition BinaryFileManager.h:13