in e2e-examples/gcs/benchmark/parameters.cc [99:160]
absl::optional<Parameters> GetParameters() {
Parameters p;
p.client = absl::GetFlag(FLAGS_client);
p.operation = absl::GetFlag(FLAGS_operation);
if (p.operation == "read") {
p.operation_type = OperationType::Read;
} else if (p.operation == "random-read") {
p.operation_type = OperationType::RandomRead;
} else if (p.operation == "write") {
p.operation_type = OperationType::Write;
} else {
std::cerr << "Invalid operation: " << p.operation << std::endl;
return {};
}
p.bucket = absl::GetFlag(FLAGS_bucket);
p.object = absl::GetFlag(FLAGS_object);
p.object_format = absl::GetFlag(FLAGS_object_format);
p.object_start = absl::GetFlag(FLAGS_object_start);
p.object_stop = absl::GetFlag(FLAGS_object_stop);
p.chunk_size = absl::GetFlag(FLAGS_chunk_size);
p.read_offset = absl::GetFlag(FLAGS_read_offset);
p.read_limit = absl::GetFlag(FLAGS_read_limit);
p.write_size = absl::GetFlag(FLAGS_write_size);
p.timeout = absl::GetFlag(FLAGS_timeout);
p.runs = absl::GetFlag(FLAGS_runs);
p.warmups = absl::GetFlag(FLAGS_warmups);
p.threads = absl::GetFlag(FLAGS_threads);
p.crc32c = absl::GetFlag(FLAGS_crc32c);
p.resumable = absl::GetFlag(FLAGS_resumable);
p.trying = absl::GetFlag(FLAGS_trying);
p.wait_threads = absl::GetFlag(FLAGS_wait_threads);
p.steal_work = absl::GetFlag(FLAGS_steal_work);
p.verbose = absl::GetFlag(FLAGS_verbose);
p.grpc_admin = absl::GetFlag(FLAGS_grpc_admin);
p.report_tag = absl::GetFlag(FLAGS_report_tag);
p.report_file = absl::GetFlag(FLAGS_report_file);
p.data_file = absl::GetFlag(FLAGS_data_file);
p.prometheus_endpoint = absl::GetFlag(FLAGS_prometheus_endpoint);
p.host = absl::GetFlag(FLAGS_host);
p.target_api_version = absl::GetFlag(FLAGS_target_api_version);
p.access_token = absl::GetFlag(FLAGS_access_token);
p.network = absl::GetFlag(FLAGS_network);
p.cred = absl::GetFlag(FLAGS_cred);
p.ssl_cert = absl::GetFlag(FLAGS_ssl_cert);
p.rr = absl::GetFlag(FLAGS_rr);
p.td = absl::GetFlag(FLAGS_td);
p.tx_zerocopy = absl::GetFlag(FLAGS_tx_zerocopy);
p.cpolicy = absl::GetFlag(FLAGS_cpolicy);
if (p.cpolicy == "") {
p.cpolicy = p.td ? "const" : "perthread";
}
if (p.cpolicy != "perthread" && p.cpolicy != "percall" &&
p.cpolicy != "const" && p.cpolicy != "pool" && p.cpolicy != "bpool" &&
p.cpolicy != "spool") {
std::cerr << "Invalid cpolicy: " << p.cpolicy << std::endl;
return {};
}
p.carg = absl::GetFlag(FLAGS_carg);
p.ctest = absl::GetFlag(FLAGS_ctest);
p.mtest = absl::GetFlag(FLAGS_mtest);
return p;
}