1
0
Fork 0
This repository has been archived on 2023-03-27. You can view files and clone it, but cannot push or open issues or pull requests.
matabstrix/src/adapters/adapter.hpp

37 lines
753 B
C++

#ifndef _ADAPTER_HPP_
#define _ADAPTER_HPP_
#include "../store.hpp"
struct Adapter
{
Adapter(Store &store): _store(store) {};
template <class T>
const T *load(const std::string &name) const;
template <class T>
const std::string filename(const std::string &name) const;
private:
Store &_store;
};
template <class T>
const T *Adapter::load(const std::string &name) const
{
static_assert(std::is_convertible<T, Resource>::value
&& !std::is_same<T, Resource>::value,
"Adapter can deal with only Resource's children");
return _store.load<T>(*this, name);
}
template <class T>
const std::string Adapter::filename(const std::string &name) const
{
return T::filename(name);
}
#endif // _ADAPTER_HPP_