#include #include #include #include #include "rpc_server.h" #include "cumsgbuffer.h" #include "pcmsgbuffer.h" struct uploadresponsemsg { int nres; //0 no message 1 have message int id; qint64 ntime; std::string strVIN; std::string strctrlMD5; std::vector xdata; MSGPACK_DEFINE(nres,id, ntime,strVIN, strctrlMD5,xdata); }; struct queryrespmsg { int nres; int id; qint64 ntime; std::vector xdata; MSGPACK_DEFINE(nres,id, ntime,xdata); }; struct ctrlrespmsg { int nsendid; // 0 write to buffer MSGPACK_DEFINE(nsendid); }; struct queryctrlstate { int nstate; // 0 write to buffer MSGPACK_DEFINE(nstate); }; static cumsgbuffer gcumsgbuf; static pcmsgbuffer gpcmsgbuf; using namespace rest_rpc; using namespace rpc_service; uploadresponsemsg get_clientresp(rpc_conn conn,int id,qint64 ntime,std::string strVIN,std::string strqueryMD5,std::string strctrlMD5,std::vector xdata) { std::cout< xdata) { ctrlrespmsg x; x.nsendid = gpcmsgbuf.addmsg(id,ntime,strVIN,strctrlMD5,&xdata); // x.nres = ; return x; } queryctrlstate query_ctrlstate(rpc_conn conn,int nsendid) { queryctrlstate x; x.nstate = gpcmsgbuf.querysendstate(nsendid); return x; } int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); gpcmsgbuf.start(); rpc_server server(9000, std::thread::hardware_concurrency()); server.register_handler("get_clientresp", get_clientresp); server.register_handler("query_clientmsg", query_clientmsg); server.register_handler("ctrl_client", ctrl_client); server.register_handler("query_ctrlstate", query_ctrlstate); server.run(); return a.exec(); }