8#ifndef GALAXY_RESOURCE_CACHE_HPP_
9#define GALAXY_RESOURCE_CACHE_HPP_
11#include <ankerl/unordered_dense.h>
12#include <entt/locator/locator.hpp>
27 template<
typename Resource,
typename SpecLoader>
34 using Map = ankerl::unordered_dense::map<std::uint64_t, std::shared_ptr<Resource>>;
65 template<typename... Args>
94 std::shared_ptr<Resource>
get(const
std::
string& key) noexcept;
104 bool has(const
std::
string& key) noexcept;
166 template<typename Resource, typename SpecLoader>
167 requires
meta::not_memory<Resource> &&
meta::is_class<Resource> &&
meta::is_instance_of_v<SpecLoader,
Loader>
172 template<
typename Resource,
typename SpecLoader>
179 template<
typename Resource,
typename SpecLoader>
194 template<
typename Resource,
typename SpecLoader>
196 template<
typename... Args>
210 template<
typename Resource,
typename SpecLoader>
214 auto& fs = entt::locator<VirtualFileSystem>::value();
215 for (
const auto& file : fs.list(dir))
221 template<
typename Resource,
typename SpecLoader>
236 template<
typename Resource,
typename SpecLoader>
249 template<
typename Resource,
typename SpecLoader>
257 template<
typename Resource,
typename SpecLoader>
264 template<
typename Resource,
typename SpecLoader>
271 template<
typename Resource,
typename SpecLoader>
278 template<
typename Resource,
typename SpecLoader>
#define GALAXY_LOG(level, msg,...)
bool has(const std::string &key) noexcept
const Map & cache() const noexcept
std::shared_ptr< graphics::Animation > get(const std::string &key) noexcept
void load_file(const std::string &file)
void load_folder(const std::string &dir)
ankerl::unordered_dense::map< std::uint64_t, std::shared_ptr< graphics::Animation > > Map
void load_resource(const std::string &key, Args &&... args)
Loader< graphics::Animation > m_loader
std::size_t size() const noexcept
bool empty() const noexcept
Cache() noexcept
Constructor.
void insert(const std::string &key, std::shared_ptr< graphics::Animation > resource) noexcept
constexpr bits fnv1a(const char *const str, const bits value=fnv_1a_params< bits >::offset) noexcept
Convert string to hash.
Loads resources for a resource cache.