52 std::unique_ptr<Request> request) {
54 if (!query.ParseFromString(request->data())) {
55 LOG(ERROR) <<
"parse data fail";
60 QueryResponse response;
61 for (uint64_t i = query.min_seq(); i <= query.max_seq(); ++i) {
63 if (ret_request ==
nullptr) {
66 Request* txn = response.add_transactions();
67 txn->set_data(ret_request->data());
68 txn->set_hash(ret_request->hash());
69 txn->set_seq(ret_request->seq());
70 txn->set_proxy_id(ret_request->proxy_id());
73 if (context !=
nullptr && context->client !=
nullptr) {
75 int ret = context->client->SendRawMessage(response);
77 LOG(ERROR) <<
"send resp fail ret:" << ret;
84 std::unique_ptr<Request> request) {
86 LOG(ERROR) <<
"no custom executor";
90 std::unique_ptr<std::string> resp_str =
93 CustomQueryResponse response;
94 if (resp_str !=
nullptr) {
95 response.set_resp_str(*resp_str);
98 if (context !=
nullptr && context->client !=
nullptr) {
99 int ret = context->client->SendRawMessage(response);
101 LOG(ERROR) <<
"send resp fail ret:" << ret;