28 #include <string_view>
30 #include "../../core/os/memory_mapped_file.h"
31 #include "../../core/utilities/filesystem_utilities.h"
51 m_memory_mapped_file.close();
54 bool open(
const std::string_view& file_path)
56 auto folder = FileSystemUtilities::get_path_by_excluding_file(file_path);
58 if (folder.length() > 0)
60 if (FileSystemUtilities::does_path_exist(folder) ==
false)
62 if (FileSystemUtilities::create_directory(folder) ==
false)
69 bool success = m_memory_mapped_file.open(file_path, MEMORY_MAPPED_FILE_SIZE);
74 std::size_t buffer_size = 0;
75 m_memory_mapped_file.get_buffer(&m_buffer, buffer_size);
83 return m_memory_mapped_file.is_open();
88 if (m_memory_mapped_file.is_open())
90 m_memory_mapped_file.flush_to_disc();
104 void increment_outgoing_seq_no()
106 reinterpret_cast<uint32_t*
>(m_buffer)[0]++;
109 void decrement_outgoing_seq_no()
111 reinterpret_cast<uint32_t*
>(m_buffer)[0]--;
120 reinterpret_cast<uint32_t*
>(m_buffer)[0] = n;
129 return reinterpret_cast<uint32_t*
>(m_buffer)[0];
133 void increment_incoming_seq_no()
135 reinterpret_cast<uint32_t*
>(m_buffer)[1]++;
144 reinterpret_cast<uint32_t*
>(m_buffer)[1] = n;
153 return reinterpret_cast<uint32_t*
>(m_buffer)[1];
157 MemoryMappedFile m_memory_mapped_file;
158 char* m_buffer =
nullptr;
159 static inline constexpr std::size_t MEMORY_MAPPED_FILE_SIZE = 65536;