#include #include #include #include #include #include #include #include #include #include #include FakeConnector::FakeConnector(NetHandler& hand) { handler = &hand; } std::expected FakeConnector::Write(std::string reqNetPacket) { std::stringstream ss(reqNetPacket); // Read binary header std::string reqRawHeader; const int rhSize = 8; reqRawHeader.resize(rhSize); ss.read(reqRawHeader.data(), rhSize); // Decode header RPCHeader reqHeader; reqHeader.Decode(reqRawHeader); // Read protobuf packet std::string reqData; auto pSize = reqHeader.PacketSize(); reqData.resize(pSize); ss.read(reqData.data(), pSize); // Call handler std::string resData; handler->Handle(reqData, resData); // Pack result std::string resNetPacket; RPCHeader resHeader(resData.size()); resNetPacket.append(resHeader.Encode()); resNetPacket.append(resData); in = resNetPacket; return reqNetPacket.size(); } std::expected FakeConnector::Read(std::string& res, int size) { res = in; return 0; } FakeConnector::~FakeConnector() {}