galaxy 1.0.0
Real-Time C++23 Game Programming Framework. Built on data-driven design principles and agile software engineering.
Loading...
Searching...
No Matches
VirtualFileSystem.hpp
Go to the documentation of this file.
1
7
8#ifndef GALAXY_FS_VIRTUALFILESYSTEM_HPP_
9#define GALAXY_FS_VIRTUALFILESYSTEM_HPP_
10
11#include <span>
12#include <string>
13#include <vector>
14
18
19namespace galaxy
20{
25 {
26 public:
30 VirtualFileSystem() noexcept;
31
35 ~VirtualFileSystem() noexcept;
36
44 [[nodiscard]]
45 std::string read(const std::string& file);
46
54 [[nodiscard]]
55 std::vector<std::uint8_t> read_binary(const std::string& file);
56
67 [[nodiscard]]
68 bool write(const std::string& data, const std::string& file);
69
80 [[nodiscard]]
81 bool write_binary(std::span<std::uint8_t> data, const std::string& file);
82
92 [[nodiscard]]
93 bool write_raw(const void* data, const std::size_t size, const std::string& file);
94
102 void mkdir(const std::string& dir) noexcept;
103
111 void remove(const std::string& path) noexcept;
112
120 [[nodiscard]]
121 bool exists(const std::string& file) noexcept;
122
130 [[nodiscard]]
131 bool is_dir(const std::string& path) noexcept;
132
140 [[nodiscard]]
141 std::vector<std::string> list(const std::string& dir);
142
146 void alert() noexcept;
147
155 void notification(const std::string& title, const std::string& msg, const fs::DialogIcon icon) noexcept;
156
168 [[nodiscard]]
169 int message_box(const std::string& title, const std::string& msg, const fs::DialogType type, const fs::DialogIcon icon, const fs::DialogButton btn) noexcept;
170
181 [[nodiscard]]
182 std::string input_box(const std::string& title, const std::string& msg, const std::string& default_text = "", const bool password = false) noexcept;
183
192 [[nodiscard]]
193 std::string open_save_dialog(const std::string& default_filename, const std::vector<const char*>& filters = {});
194
203 [[nodiscard]]
204 std::string open_file_dialog(const std::vector<const char*>& filters = {}, const std::string& def_path = "");
205
213 [[nodiscard]]
214 std::string select_folder_dialog(const std::string& def_path = "");
215
216 private:
221
226
231
236 };
237} // namespace galaxy
238
239#endif
File System to make managing files easier.
void alert() noexcept
Trigger a standard filesystem audio alert.
VirtualFileSystem(const VirtualFileSystem &)=delete
Copy constructor.
~VirtualFileSystem() noexcept
Destructor.
bool is_dir(const std::string &path) noexcept
Checks if a file is a folder.
bool write_binary(std::span< std::uint8_t > data, const std::string &file)
Writes a binary file to disk.
std::vector< std::string > list(const std::string &dir)
Get assets in an asset folder.
std::string read(const std::string &file)
Read a file.
VirtualFileSystem & operator=(const VirtualFileSystem &)=delete
Copy assignment operator.
bool write_raw(const void *data, const std::size_t size, const std::string &file)
Raw data writing.
bool write(const std::string &data, const std::string &file)
Writes a file to disk.
int message_box(const std::string &title, const std::string &msg, const fs::DialogType type, const fs::DialogIcon icon, const fs::DialogButton btn) noexcept
Opens a platform specific message box.
std::string input_box(const std::string &title, const std::string &msg, const std::string &default_text="", const bool password=false) noexcept
Opens a platform specific text input box.
bool exists(const std::string &file) noexcept
Does the file exist in the vfs.
std::string open_file_dialog(const std::vector< const char * > &filters={}, const std::string &def_path="")
Open a file dialog.
std::string open_save_dialog(const std::string &default_filename, const std::vector< const char * > &filters={})
Open a save file dialog.
void notification(const std::string &title, const std::string &msg, const fs::DialogIcon icon) noexcept
Trigger a system notification.
std::string select_folder_dialog(const std::string &def_path="")
Select a folder using a dialog.
VirtualFileSystem(VirtualFileSystem &&)=delete
Move constructor.
VirtualFileSystem & operator=(VirtualFileSystem &&)=delete
Move assignment operator.
void remove(const std::string &path) noexcept
Delete a file or folder.
VirtualFileSystem() noexcept
Constructor.
std::vector< std::uint8_t > read_binary(const std::string &file)
Read a binary file.
void mkdir(const std::string &dir) noexcept
Creates an empty folder in the filesystem relative to the root.
DialogType
Type of dialog box for use with tinyfd.
DialogIcon
Type of native system icon to display on file dialogs.
DialogButton
Type of button for tinyfd boxes.
Timer.hpp galaxy.
Definition Timer.cpp:18