HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
file_mapping.hpp
1// Copyright Take Vos 2019, 2021.
2// Distributed under the Boost Software License, Version 1.0.
3// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
4
5#pragma once
6
7#include "file.hpp"
8#include <memory>
9#include <unordered_map>
10
11namespace tt {
12
20public:
24
27 size_t size;
28
31 file_handle mapHandle;
32
39
49 file_mapping(URL const& path, access_mode accessMode, size_t size);
51
52 file_mapping(file_mapping const &other) = delete;
53 file_mapping(file_mapping &&other) = delete;
54 file_mapping &operator=(file_mapping const &other) = delete;
55 file_mapping &operator=(file_mapping &&other) = delete;
56
59 [[nodiscard]] access_mode accessMode() const noexcept{ return file->_access_mode; }
60
63 [[nodiscard]] URL const &location() const noexcept { return file->_location; }
64
65private:
73 [[nodiscard]] static std::shared_ptr<tt::file> findOrOpenFile(URL const &path, access_mode accessMode);
74};
75
76}
A File object.
Definition file.hpp:62
Definition file_mapping.hpp:19
file_mapping(std::shared_ptr< tt::file > const &file, size_t size)
file_handle mapHandle
Definition file_mapping.hpp:31
size_t size
Definition file_mapping.hpp:27
access_mode accessMode() const noexcept
Definition file_mapping.hpp:59
URL const & location() const noexcept
Definition file_mapping.hpp:63
std::shared_ptr< file > file
Definition file_mapping.hpp:23
file_mapping(URL const &path, access_mode accessMode, size_t size)
Definition URL.hpp:46