working commit
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
|
||||
#include <cstring>
|
||||
#include <expected>
|
||||
#include <iostream>
|
||||
#include <span>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <memory>
|
||||
|
||||
#include <fakeconnect.hpp>
|
||||
#include <nethandler.hpp>
|
||||
#include <rpcheader.hpp>
|
||||
|
||||
|
||||
FakeConnector::FakeConnector(NetHandler& hand) {
|
||||
handler = &hand;
|
||||
}
|
||||
|
||||
std::expected<int, std::string> 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<int, std::string> FakeConnector::Read(std::string& res, int size) {
|
||||
res = in;
|
||||
return 0;
|
||||
}
|
||||
|
||||
FakeConnector::~FakeConnector() {}
|
||||
|
||||
Reference in New Issue
Block a user