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{
21 namespace fs
22 {
27 {
28 public:
33
38
46 [[nodiscard]]
47 std::string read(const std::string& file);
48
56 [[nodiscard]]
57 std::vector<std::uint8_t> read_binary(const std::string& file);
58
69 [[nodiscard]]
70 bool write(const std::string& data, const std::string& file);
71
82 [[nodiscard]]
83 bool write_binary(std::span<std::uint8_t> data, const std::string& file);
84
94 [[nodiscard]]
95 bool write_raw(const void* data, const std::size_t size, const std::string& file);
96
104 void mkdir(const std::string& dir) noexcept;
105
113 void remove(const std::string& path) noexcept;
114
122 [[nodiscard]]
123 bool exists(const std::string& file) noexcept;
124
132 [[nodiscard]]
133 bool is_dir(const std::string& path) noexcept;
134
142 [[nodiscard]]
143 std::vector<std::string> list(const std::string& dir);
144
148 void alert() noexcept;
149
157 void notification(const std::string& title, const std::string& msg, const DialogIcon icon) noexcept;
158
170 [[nodiscard]]
171 int message_box(const std::string& title, const std::string& msg, const DialogType type, const DialogIcon icon, const DialogButton btn) noexcept;
172
183 [[nodiscard]]
184 std::string input_box(const std::string& title, const std::string& msg, const std::string& default_text = "", const bool password = false) noexcept;
185
194 [[nodiscard]]
195 std::string open_save_dialog(const std::string& default_filename, const std::vector<const char*>& filters = {});
196
205 [[nodiscard]]
206 std::string open_file_dialog(const std::vector<const char*>& filters = {}, const std::string& def_path = "");
207
215 [[nodiscard]]
216 std::string select_folder_dialog(const std::string& def_path = "");
217
225 [[nodiscard]]
226 std::string get_file_extension(const std::string& file_name) noexcept;
227
228 private:
233
238
243
248 };
249 } // namespace fs
250} // namespace galaxy
251
252#endif
File System to make managing files easier.
bool is_dir(const std::string &path) noexcept
Checks if a file is a folder.
bool exists(const std::string &file) noexcept
Does the file exist in the vfs.
std::vector< std::uint8_t > read_binary(const std::string &file)
Read a binary file.
int message_box(const std::string &title, const std::string &msg, const DialogType type, const DialogIcon icon, const DialogButton btn) noexcept
Opens a platform specific message box.
void mkdir(const std::string &dir) noexcept
Creates an empty folder in the filesystem relative to the root.
bool write_raw(const void *data, const std::size_t size, const std::string &file)
Raw data writing.
std::string select_folder_dialog(const std::string &def_path="")
Select a folder using a dialog.
VirtualFileSystem & operator=(VirtualFileSystem &&)=delete
Move assignment operator.
bool write(const std::string &data, const std::string &file)
Writes a file to disk.
void notification(const std::string &title, const std::string &msg, const DialogIcon icon) noexcept
Trigger a system notification.
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.
VirtualFileSystem(const VirtualFileSystem &)=delete
Copy constructor.
std::vector< std::string > list(const std::string &dir)
Get assets in an asset folder.
std::string get_file_extension(const std::string &file_name) noexcept
Get pointer to extension for a filename string.
bool write_binary(std::span< std::uint8_t > data, const std::string &file)
Writes a binary file to disk.
void alert() noexcept
Trigger a standard filesystem audio alert.
std::string open_save_dialog(const std::string &default_filename, const std::vector< const char * > &filters={})
Open a save file dialog.
std::string open_file_dialog(const std::vector< const char * > &filters={}, const std::string &def_path="")
Open a file dialog.
std::string read(const std::string &file)
Read a file.
VirtualFileSystem & operator=(const VirtualFileSystem &)=delete
Copy assignment operator.
void remove(const std::string &path) noexcept
Delete a file or folder.
VirtualFileSystem(VirtualFileSystem &&)=delete
Move constructor.
DialogIcon
Type of native system icon to display on file dialogs.
DialogType
Type of dialog box for use with tinyfd.
DialogButton
Type of button for tinyfd boxes.
Timer.hpp galaxy.
Definition Async.hpp:17