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 DialogIcon icon) noexcept;
156
168 [[nodiscard]]
169 int message_box(const std::string& title, const std::string& msg, const DialogType type, const DialogIcon icon, const 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.
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.
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.
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.
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.
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.
Animated.cpp galaxy.
Definition Animated.cpp:16
DialogButton
Type of button for tinyfd boxes.
DialogType
Type of dialog box for use with tinyfd.
DialogIcon
Type of native system icon to display on file dialogs.