1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #include "rpcServer.h"
- #include <QThread>
- #include <QDebug>
- Status rpcServer::Upload(ServerContext* context, ServerReader<ChunkOneLine>* reader, Reply* reply)
- {
- //定义接收的对象
- ChunkOneLine oneLie;
- //读
- if (!reader->Read(&oneLie))
- {
- // qDebug() << "Read Error ";
- }
- cv::Mat mat;
- //把接收到的buff用str_decon存储,其实在protobuf这个IDL语言里,bytes对应的就是string
- std::string str_decon = oneLie.databuf().buff();
-
- //解码的前必须的data格式,用一个uchar类型的vector
- std::vector<uchar>data(str_decon.begin(), str_decon.end());
- //直接解码
- mat = cv::imdecode(data, 1);
- //读
- if (!reader->Read(&oneLie))
- {
- // qDebug() << "Read Error ";
- }
- qDebug() << "UserName " << oneLie.databuf().name().c_str();
- qDebug() << "UserId " << oneLie.databuf().id();
- qDebug() << "Image size " << mat.size().width;
- cv::imshow("img", mat);
- return grpc::Status::OK;
- }
- Status rpcServer:: ListFeatures(ServerContext* context, const Request* request, ServerWriter< Response>* writer)
- {
- for (int i = 0; i <= 100; i+=20)
- {
- Response reMsg;
- char tmp[3];
- sprintf_s(tmp, "%d", i);
- std::string strNum(tmp);
- std::string msg = strNum + "%";
- reMsg.add_result(msg);
- writer->Write(reMsg);
- std::cout << "Write" << msg << "\n";
- }
- return grpc::Status::OK;
- }
|