working commit

This commit is contained in:
Олег Бородин
2026-05-05 11:37:10 +02:00
parent bd4df1e3da
commit eda9b8986b
62 changed files with 7546 additions and 476 deletions
+44
View File
@@ -0,0 +1,44 @@
#include <cstring>
#include <expected>
#include <iostream>
#include <span>
#include <string>
#include <vector>
#include <sstream>
#include <google/protobuf/message.h>
#include <control.pb.h>
#include <rpcclient.hpp>
#include <msgheader.hpp>
#include <netclient.hpp>
RPCClient::RPCClient(NetClient& iconnector) {
connector = &iconnector;
}
std::expected<void, std::string> RPCClient::DoTransaction(const pbMessage& pbReq, pbMessage& pbRes) {
std::string rawRequest;
pbReq.SerializeToString(&rawRequest);
MessageHeader reqHeader(rawRequest.size());
auto rawReqHeader = reqHeader.Encode();
std::string reqPacket;
reqPacket.append(rawReqHeader);
reqPacket.append(rawRequest);
connector->Write(reqPacket);
const int headerSize = rpcHeaderSize;
std::string rawResHeader;
connector->Read(rawResHeader, headerSize);
MessageHeader resHeader;
resHeader.Decode(rawResHeader);
std::string rawResponse;
connector->Read(rawResponse, resHeader.PacketSize());
pbRes.ParseFromString(rawResponse);
return {};
}