Files
logos-cpp-sdk/cpp/implementations/plain/json_codec.cpp
Dario Lipicar 25c88f4d48 support non-local remote transports (#57)
* support non-local remote transports

* fix LogosResult

* allow getting client over specific transport

* fix ssl

* investiage ssl error

* pr comments

* allow transport set configuration on any module

* pr comments

* add docs

* pr comments

* propagate only non-qt dependencies

* restore ABI compatibility
2026-05-07 12:27:14 -03:00

29 lines
667 B
C++

#include "json_codec.h"
#include "json_mapping.h"
#include <nlohmann/json.hpp>
namespace logos::plain {
using json = nlohmann::json;
std::vector<uint8_t> JsonCodec::encode(const AnyMessage& msg)
{
const json j = messageToJson(msg);
const std::string s = j.dump();
return std::vector<uint8_t>(s.begin(), s.end());
}
AnyMessage JsonCodec::decode(MessageType tag, const uint8_t* data, std::size_t len)
{
json j;
try {
j = json::parse(data, data + len);
} catch (const std::exception& e) {
throw CodecError(std::string("json parse failed: ") + e.what());
}
return jsonToMessage(tag, j);
}
} // namespace logos::plain