54 lines
1.2 KiB
C++
54 lines
1.2 KiB
C++
|
|
#include <expected>
|
|
#include <string>
|
|
#include <vector>
|
|
#include <span>
|
|
#include <iostream>
|
|
#include <sstream>
|
|
|
|
#include <netclient.hpp>
|
|
#include <nethandler.hpp>
|
|
#include <fakeconnect.hpp>
|
|
#include <rpcheader.hpp>
|
|
|
|
#include <control.pb.h>
|
|
|
|
class FakeHandler : public NetHandler {
|
|
public:
|
|
std::expected<void, std::string> Handle(std::string& req, std::string& res) override;
|
|
};
|
|
|
|
std::expected<void, std::string> FakeHandler::Handle(std::string& req, std::string& res) {
|
|
control::HelloRequest pbReq;
|
|
pbReq.ParseFromString(req);
|
|
std::cout << std::format("name: {}\n", pbReq.name());
|
|
std::cout << std::format("id: {}\n", pbReq.id());
|
|
return {};
|
|
}
|
|
|
|
int main(int argc, char** argv) {
|
|
|
|
FakeHandler handler;
|
|
FakeConnector conn(handler);
|
|
|
|
control::HelloRequest pbReq;
|
|
pbReq.set_id(10);
|
|
pbReq.set_name("barefoo");
|
|
|
|
std::string rawReq;
|
|
pbReq.SerializeToString(&rawReq);
|
|
|
|
RPCHeader reqHeader(rawReq.size());
|
|
auto rawHeader = reqHeader.Encode();
|
|
|
|
std::cout << rawHeader.size() << std::endl;
|
|
|
|
std::string reqPacket;
|
|
reqPacket.append(rawHeader);
|
|
reqPacket.append(rawReq);
|
|
|
|
conn.Write(reqPacket);
|
|
std::string rawRes;
|
|
|
|
}
|