SRSDK  0.10.39
Loading...
Searching...
No Matches
assetManager.hpp
Go to the documentation of this file.
1#ifndef CNSDK_LEIA_CORE_CXX_ASSET_MANAGER_HPP
2#define CNSDK_LEIA_CORE_CXX_ASSET_MANAGER_HPP
3
5
6#include <string>
7
8namespace leia {
9
11public:
12 AssetManagerBuffer() : _buffer({0, nullptr})
13 {
14 }
16 {
17 }
19 {
21 }
22
26 {
27 *this = std::move(other);
28 }
30 {
31 std::swap(_buffer, other._buffer);
32 return *this;
33 }
34
36 size_t GetSize() const
37 {
38 return _buffer.size;
39 }
41 char* GetData() const
42 {
43 return _buffer.data;
44 }
45
46private:
48};
49
51public:
53 AssetManager(NONOWNING(leia_asset_manager) * ptr) : _ptr(ptr)
54 {
55 }
56
58 {
59 *this = other;
60 }
62 {
63 _ptr = other._ptr;
64 return *this;
65 }
68
70 AssetManagerBuffer ReadData(const char* assetPath, ResolveContext* resolveContext = nullptr) const
71 {
72 return {leia_asset_manager_read_data(_ptr, assetPath, resolveContext)};
73 }
75 std::string ReadString(const char* assetPath, ResolveContext* resolveContext = nullptr) const
76 {
77 AssetManagerBuffer data = ReadData(assetPath, resolveContext);
78
79 std::string ret;
80 if (data.GetData() && data.GetSize())
81 {
82 ret = {data.GetData(), data.GetSize()};
83 }
84 return ret;
85 }
87 leia_asset_manager* GetHandle()
88 {
89 return _ptr;
90 }
91
92private:
93 leia_asset_manager* _ptr;
94};
95
96} // namespace leia
97
98#endif // CNSDK_LEIA_CORE_CXX_ASSET_MANAGER_HPP
LEIA_NODISCARD LEIASDK_API leia_asset_manager_buffer leia_asset_manager_read_data(leia_asset_manager *, const char *assetPath, struct leia_asset_manager_resolve_context *resolveContext)
Read an asset as a Buffer.
LEIASDK_API void leia_asset_manager_buffer_release(leia_asset_manager_buffer *)
Definition assetManager.hpp:10
LEIA_NODISCARD size_t GetSize() const
Definition assetManager.hpp:36
AssetManagerBuffer()
Definition assetManager.hpp:12
AssetManagerBuffer(OWNING(leia_asset_manager_buffer) buffer)
Definition assetManager.hpp:15
LEIA_NODISCARD char * GetData() const
Definition assetManager.hpp:41
AssetManagerBuffer(AssetManagerBuffer &&other)
Definition assetManager.hpp:25
~AssetManagerBuffer()
Definition assetManager.hpp:18
AssetManagerBuffer & operator=(AssetManagerBuffer &&other)
Definition assetManager.hpp:29
AssetManagerBuffer(AssetManagerBuffer const &)=delete
AssetManagerBuffer & operator=(AssetManagerBuffer const &)=delete
Definition assetManager.hpp:50
AssetManager & operator=(AssetManager &&)=delete
LEIA_NODISCARD std::string ReadString(const char *assetPath, ResolveContext *resolveContext=nullptr) const
Definition assetManager.hpp:75
LEIA_NODISCARD AssetManagerBuffer ReadData(const char *assetPath, ResolveContext *resolveContext=nullptr) const
Definition assetManager.hpp:70
LEIA_NODISCARD leia_asset_manager * GetHandle()
Definition assetManager.hpp:87
AssetManager(AssetManager &&)=delete
AssetManager(NONOWNING(leia_asset_manager) *ptr)
Definition assetManager.hpp:53
AssetManager(AssetManager const &other)
Definition assetManager.hpp:57
AssetManager & operator=(AssetManager const &other)
Definition assetManager.hpp:61
#define LEIA_NODISCARD
Definition defines.h:86
#define OWNING(ptr)
Definition defines.h:105
#define NONOWNING(ptr)
Definition defines.h:110
Definition types.hpp:10
Definition assetManager.h:13
char * data
Definition assetManager.h:15
uint64_t size
Definition assetManager.h:14
Definition assetManager.h:24