2025-09-30 16:48:13 +01:00
|
|
|
|
// Copyright (c) 2014-2018 Zano Project
|
|
|
|
|
|
// Copyright (c) 2014-2018 The Louisdor Project
|
|
|
|
|
|
// Copyright (c) 2012-2013 The Boolberry developers
|
|
|
|
|
|
// Copyright (c) 2017-2025 Lethean (https://lt.hn)
|
|
|
|
|
|
//
|
|
|
|
|
|
// Licensed under the European Union Public Licence (EUPL) version 1.2.
|
|
|
|
|
|
// You may obtain a copy of the licence at:
|
|
|
|
|
|
//
|
|
|
|
|
|
// https://joinup.ec.europa.eu/software/page/eupl/licence-eupl
|
|
|
|
|
|
//
|
|
|
|
|
|
// The EUPL is a copyleft licence that is compatible with the MIT/X11
|
|
|
|
|
|
// licence used by the original projects; the MIT terms are therefore
|
|
|
|
|
|
// considered “grandfathered” under the EUPL for this code.
|
|
|
|
|
|
//
|
|
|
|
|
|
// SPDX‑License‑Identifier: EUPL-1.2
|
|
|
|
|
|
//
|
2018-12-27 18:50:45 +03:00
|
|
|
|
|
|
|
|
|
|
#include <sstream>
|
|
|
|
|
|
#include "binary_archive.h"
|
|
|
|
|
|
|
|
|
|
|
|
namespace serialization {
|
|
|
|
|
|
|
|
|
|
|
|
template <class T>
|
|
|
|
|
|
bool parse_binary(const std::string &blob, T &v)
|
|
|
|
|
|
{
|
|
|
|
|
|
std::istringstream istr(blob);
|
|
|
|
|
|
binary_archive<false> iar(istr);
|
|
|
|
|
|
return ::serialization::serialize(iar, v);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
template<class T>
|
|
|
|
|
|
bool dump_binary(T& v, std::string& blob)
|
|
|
|
|
|
{
|
|
|
|
|
|
std::stringstream ostr;
|
|
|
|
|
|
binary_archive<true> oar(ostr);
|
|
|
|
|
|
bool success = ::serialization::serialize(oar, v);
|
|
|
|
|
|
blob = ostr.str();
|
|
|
|
|
|
return success && ostr.good();
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
} // namespace serialization
|