1.11
resource.h
1/*
2 * Copyright (C) 2018 Microchip Technology Inc. All rights reserved.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6#ifndef EGT_RESOURCE_H
7#define EGT_RESOURCE_H
8
14#include <cstdint>
15#include <egt/detail/meta.h>
16#include <map>
17#include <string>
18#include <vector>
19
20namespace egt
21{
22inline namespace v1
23{
24
35class EGT_API ResourceManager
36{
37public:
38
43
47 bool exists(const char* name) const;
48
54 void add(const char* name, const unsigned char* data, size_t len);
55
59 void add(const char* name, const std::vector<unsigned char>& data);
60
64 void remove(const char* name);
65
69 void clear();
70
74 void clear(const char* name);
75
79 size_t size(const char* name);
80
84 const unsigned char* data(const char* name);
85
89 bool read(const char* name, unsigned char* data,
90 size_t length, size_t offset = 0);
91
93 using ItemArray = std::vector<std::string>;
94
98 EGT_NODISCARD ItemArray list() const;
99
105 void stream_reset(const char* name);
106
110 bool stream_read(const char* name, unsigned char* data, size_t length);
111
112private:
113
115
116 struct ResourceItem;
117
118 using ResourceMap = std::map<std::string, ResourceItem>;
119
120 ResourceMap m_resources;
121};
122
123}
124}
125
126#endif
Manages EGT resource data blobs.
Definition resource.h:36
bool stream_read(const char *name, unsigned char *data, size_t length)
Read starting from internal stream offset.
static ResourceManager & instance()
Get a reference to the ResourceManager instance.
std::vector< std::string > ItemArray
Item array type.
Definition resource.h:93
size_t size(const char *name)
Get the data length of a resource.
bool read(const char *name, unsigned char *data, size_t length, size_t offset=0)
Read data from a resource.
EGT_NODISCARD ItemArray list() const
Get a list of registered resource names.
void remove(const char *name)
Unregister a resource.
void stream_reset(const char *name)
Reset internal read stream offset.
void add(const char *name, const std::vector< unsigned char > &data)
Register a resource as raw data.
void clear(const char *name)
Clear the specified resource by name.
void clear()
Clear all registered resources.
const unsigned char * data(const char *name)
Get a pointer to the in-memory resource data.
bool exists(const char *name) const
void add(const char *name, const unsigned char *data, size_t len)
Register a resource as raw data.
EGT framework namespace.
Definition animation.h:24