#include #include #include #include #include #include #include #include #include #include #include class FakeHandler : public NetHandler { public: std::expected Handle(std::string& req, std::string& res) override; }; std::expected 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; }