15 try_save(ar, ser20::make_nvp(
"location", obj.location));
22 try_load(ar, ser20::make_nvp(
"location", obj.location));
29 const auto& db = obj.get_database();
30 try_save(ar, ser20::make_nvp(
"database", db));
39 try_load(ar, ser20::make_nvp(
"database", database));
41 obj.set_database(database);
48 std::ofstream stream(absolute_path);
52 try_save(ar, ser20::make_nvp(
"db", obj));
57 std::ofstream stream(absolute_path, std::ios::binary);
61 try_save(ar, ser20::make_nvp(
"db", obj));
66 std::ifstream stream(absolute_path);
70 return try_load(ar, ser20::make_nvp(
"db", obj));
76 std::ifstream stream(absolute_path, std::ios::binary);
80 return try_load(ar, ser20::make_nvp(
"db", obj));
89 try_save(ar, ser20::make_nvp(
"type", obj.type));
90 try_save(ar, ser20::make_nvp(
"uid", obj.uid));
91 try_save(ar, ser20::make_nvp(
"importer", obj.importer));
92 try_save(ar, ser20::make_nvp(
"header", obj.header));
99 try_load(ar, ser20::make_nvp(
"type", obj.type));
100 try_load(ar, ser20::make_nvp(
"uid", obj.uid));
101 try_load(ar, ser20::make_nvp(
"importer", obj.importer));
102 try_load(ar, ser20::make_nvp(
"header", obj.header));
109 std::ofstream stream(absolute_path);
115 try_save(ar, ser20::make_nvp(
"meta", obj));
117 catch(
const std::exception& e)
125 std::ofstream stream(absolute_path, std::ios::binary);
131 try_save(ar, ser20::make_nvp(
"meta", obj));
133 catch(
const std::exception& e)
141 std::ifstream stream(absolute_path);
147 return try_load(ar, ser20::make_nvp(
"meta", obj));
149 catch(
const std::exception& e)
158 std::ifstream stream(absolute_path, std::ios::binary);
164 return try_load(ar, ser20::make_nvp(
"meta", obj));
166 catch(
const std::exception& e)
Manages asset metadata and provides functionality for adding, removing, and querying assets.
std::map< hpp::uuid, meta > database_t
Type definition for the asset database.
auto create_oarchive_associative(std::ostream &stream)
BinaryInputArchive iarchive_binary_t
auto create_iarchive_associative(std::istream &stream)
simd::JSONOutputArchive oarchive_associative_t
BinaryOutputArchive oarchive_binary_t
simd::JSONInputArchive iarchive_associative_t
void log_warning(const std::string &log_msg, const hpp::source_location &loc)
void save_to_file_bin(const std::string &absolute_path, const animation_clip &obj)
void load_from_file(const std::string &absolute_path, animation_clip &obj)
void save_to_file(const std::string &absolute_path, const animation_clip &obj)
void load_from_file_bin(const std::string &absolute_path, animation_clip &obj)
#define SAVE_INSTANTIATE(cls, Archive)
auto try_save(Archive &ar, ser20::NameValuePair< T > &&t, const hpp::source_location &loc=hpp::source_location::current()) -> bool
#define LOAD_INSTANTIATE(cls, Archive)
auto try_load(Archive &ar, ser20::NameValuePair< T > &&t, const hpp::source_location &loc=hpp::source_location::current()) -> bool