std::shared_ptr CreateBenchmarkGrpcChannel()

in e2e-examples/gcs/sample/main.cc [45:87]


std::shared_ptr<grpc::Channel> CreateBenchmarkGrpcChannel() {
  if (absl::GetFlag(FLAGS_access_token).empty()) {
    grpc::ChannelArguments channel_args;
    channel_args.SetServiceConfigJSON(
        "{\"loadBalancingConfig\":[{\"grpclb\":{"
        "\"childPolicy\":[{\"pick_first\":{}}]}}]"
        "}");
    if (!absl::GetFlag(FLAGS_directpath)) {
      channel_args.SetInt("grpc.dns_enable_srv_queries",
                          0);  // Disable DirectPath
    }
    std::shared_ptr<grpc::Channel> channel = grpc::CreateCustomChannel(
        std::string(absl::GetFlag(FLAGS_host)),
        grpc::GoogleDefaultCredentials(), channel_args);
    return channel;
  } else {
    std::shared_ptr<grpc::ChannelCredentials> credentials;
    std::shared_ptr<grpc::ChannelCredentials> channel_credentials =
        grpc::SslCredentials(grpc::SslCredentialsOptions());
    if (absl::GetFlag(FLAGS_access_token) == "-") {
      credentials = channel_credentials;
    } else {
      std::shared_ptr<grpc::CallCredentials> call_credentials =
          grpc::AccessTokenCredentials(
              std::string(absl::GetFlag(FLAGS_access_token)));
      credentials = grpc::CompositeChannelCredentials(channel_credentials,
                                                      call_credentials);
    }
    std::shared_ptr<grpc::Channel> channel = grpc::CreateChannel(
        std::string(absl::GetFlag(FLAGS_host)), credentials);
    return channel;
  }

  grpc::ChannelArguments channel_args;
  channel_args.SetServiceConfigJSON(
      "{\"loadBalancingConfig\":[{\"grpclb\":{"
      "\"childPolicy\":[{\"pick_first\":{}}]}}]"
      "}");
  std::shared_ptr<grpc::Channel> channel =
      grpc::CreateCustomChannel(std::string(absl::GetFlag(FLAGS_host)),
                                grpc::GoogleDefaultCredentials(), channel_args);
  return channel;
}