main.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. #include <QCoreApplication>
  2. #include <iostream>
  3. #include <grpc++/grpc++.h>
  4. #include <testservice.pb.h>
  5. #include <testservice.grpc.pb.h>
  6. #include <simpletest.pb.h>
  7. #include <simpletest.grpc.pb.h>
  8. #include <thread>
  9. class SimpleTestImpl final : public qtprotobufnamespace::tests::TestService::Service {
  10. public:
  11. ::grpc::Status testMethod(grpc::ServerContext *, const qtprotobufnamespace::tests::SimpleStringMessage *request, qtprotobufnamespace::tests::SimpleStringMessage *response)
  12. {
  13. std::cerr << "testMethod called" << std::endl << request->testfieldstring() << std::endl;
  14. response->set_testfieldstring(request->testfieldstring());
  15. if(request->testfieldstring() == "sleep") {
  16. std::this_thread::sleep_for(std::chrono::seconds(3));
  17. }
  18. return ::grpc::Status();
  19. }
  20. };
  21. int main(int, char *[])
  22. {
  23. std::string server_address("localhost:50051");
  24. SimpleTestImpl service;
  25. grpc::ServerBuilder builder;
  26. builder.AddListeningPort(server_address, grpc::InsecureServerCredentials());
  27. builder.RegisterService(&service);
  28. std::unique_ptr<grpc::Server> server(builder.BuildAndStart());
  29. std::cout << "Server listening on " << server_address << std::endl;
  30. server->Wait();
  31. }