Calamity Engine 1.0.0
A cross-platform 2D game engine written in C++ and SDL3.
Loading...
Searching...
No Matches
file.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <SDL3/SDL.h>
4#include <memory>
5#include "../core/definitions.hpp"
6#include "../core/node/node.hpp"
7#include "../services/engine.hpp"
8#include "../core/node/components.hpp"
9
10enum class Whence {
11 BEGIN,
12 CURRENT,
13 END
14};
15
46class File
47{
48public:
49 ~File();
50 std::string mode;
51 std::string path;
52
53 void flush() const;
54 void close();
55 void seek(int offset, Whence whence) const;
56
57 int getSize() const;
58 std::string getAsText();
59 std::string getAbsolutePath();
60 int getPosition();
61 std::string getLine();
62 bool eofReached() const;
63 void storeString(const std::string& str);
64 void storeLine(const std::string& str);
65
66 static std::string getAbsoluteFilePath(const std::string& path);
67 static File *open(std::string path, const std::string& mode);
68 static int getFileSize(const std::string& path);
69 static bool fileExists(const std::string& path);
70 static std::string getFileAsText(std::string path);
71
72 static void fileCopy(const std::string& path1, const std::string& path2);
73 static void fileDelete(const std::string& path);
74 static void directoryCreate(const std::string& path);
75 static std::vector<std::string> directoryEnumerate(const std::string& path);
76
77private:
78 std::string fsPath;
79 SDL_IOStream *handle;
80};
84void loadNodeTree(const std::shared_ptr<Node>& parent, const std::string& jsonText);
85
89std::string exportNodeTree(std::shared_ptr<Node> node);
90
94std::string exportWindow(std::shared_ptr<Window> window);
95
99void loadWindow(const std::string& jsonText, std::shared_ptr<Window> window);
100
101std::string parseFilePath(std::string path); // meant for internal use
Definition file.hpp:47
void storeLine(const std::string &str)
Definition file.cpp:196
static bool fileExists(const std::string &path)
Definition file.cpp:226
int getSize() const
Definition file.cpp:118
std::string mode
Definition file.hpp:50
bool eofReached() const
Definition file.cpp:172
static File * open(std::string path, const std::string &mode)
Definition file.cpp:56
void storeString(const std::string &str)
Definition file.cpp:183
void seek(int offset, Whence whence) const
Definition file.cpp:96
int getPosition()
Definition file.cpp:107
std::string getLine()
Definition file.cpp:153
void close()
Definition file.cpp:84
std::string getAbsolutePath()
Definition file.cpp:148
void flush() const
Definition file.cpp:73
std::string path
Definition file.hpp:51
static std::string getAbsoluteFilePath(const std::string &path)
Definition file.cpp:207
static std::vector< std::string > directoryEnumerate(const std::string &path)
Definition file.cpp:40
static int getFileSize(const std::string &path)
Definition file.cpp:212
static std::string getFileAsText(std::string path)
Definition file.cpp:231
static void fileCopy(const std::string &path1, const std::string &path2)
Definition file.cpp:16
std::string getAsText()
Definition file.cpp:131
~File()
Definition file.cpp:7
static void directoryCreate(const std::string &path)
Definition file.cpp:32
static void fileDelete(const std::string &path)
Definition file.cpp:24
Whence
Definition file.hpp:10
void loadNodeTree(const std::shared_ptr< Node > &parent, const std::string &jsonText)
Definition file.cpp:300
std::string exportWindow(std::shared_ptr< Window > window)
Definition file.cpp:276
std::string parseFilePath(std::string path)
Definition file.cpp:313
void loadWindow(const std::string &jsonText, std::shared_ptr< Window > window)
Definition file.cpp:289
std::string exportNodeTree(std::shared_ptr< Node > node)
Definition file.cpp:263