support non-local remote transports

This commit is contained in:
Dario Gabriel Lipicar
2026-04-24 13:44:15 -03:00
parent ecd369d48b
commit d143d2523c
45 changed files with 3785 additions and 25 deletions
+28
View File
@@ -0,0 +1,28 @@
#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