void GeoGlobalExecutor::Execute()

in platform/consensus/execution/geo_global_executor.cpp [47:73]


void GeoGlobalExecutor::Execute(std::unique_ptr<Request> request) {
  BatchUserRequest batch_request;
  if (!batch_request.ParseFromString(request->data())) {
    LOG(ERROR) << "[GeoGlobalExecutor] parse data fail!";
    return;
  }
  if (request->data().empty()) {
    LOG(ERROR) << "[GeoGlobalExecutor] request->data() is empty ";
    return;
  }

  if (global_stats_) {
    global_stats_->IncTotalGeoRequest(batch_request.user_requests_size());
  }
  if (global_transaction_manager_) {
    auto batch_response =
        global_transaction_manager_->ExecuteBatch(batch_request);
    if (batch_response != nullptr &&
        request->region_info().region_id() == my_region_) {
      batch_response->set_createtime(batch_request.createtime());
      batch_response->set_local_id(batch_request.local_id());
      batch_response->set_proxy_id(batch_request.proxy_id());
      batch_response->set_seq(batch_request.seq());
      resp_queue_.Push(std::move(batch_response));
    }
  }
}