Go to the documentation of this file.
27 #include "absl/strings/str_cat.h"
28 #include "absl/strings/str_format.h"
29 #include "absl/strings/str_join.h"
116 const char**
value) {
122 void (*on_extra_arg)(
void* user_data,
const char*
arg),
void* user_data) {
136 if (
a ==
nullptr)
return;
152 const char*
name = strrchr(argv0,
'/');
153 if (
name !=
nullptr) {
159 std::vector<std::string> s;
188 for (
a = cl->
args;
a;
a =
a->next) {
189 if (0 == strcmp(
a->name,
name)) {
195 fprintf(
stderr,
"Unknown argument: %s\n",
name);
210 intval = strtol(
str, &
end, 0);
211 if (*
end || intval < INT_MIN || intval > INT_MAX) {
212 fprintf(
stderr,
"expected integer, got '%s' for %s\n",
str,
216 *
static_cast<int*
>(cl->
cur_arg->
value) =
static_cast<int>(intval);
219 if (0 == strcmp(
str,
"1") || 0 == strcmp(
str,
"true")) {
221 }
else if (0 == strcmp(
str,
"0") || 0 == strcmp(
str,
"false")) {
224 fprintf(
stderr,
"expected boolean, got '%s' for %s\n",
str,
241 char* arg_name =
nullptr;
244 if (0 == strcmp(
str,
"-help") || 0 == strcmp(
str,
"--help") ||
245 0 == strcmp(
str,
"-h")) {
263 if (
str[0] ==
'n' &&
str[1] ==
'o' &&
str[2] ==
'-') {
271 fprintf(
stderr,
"%s is not a flag argument\n",
str);
277 eq = strchr(
str,
'=');
283 arg_name[
eq -
str] = 0;
315 for (
i = 1;
i < argc;
i++) {
316 if (!cl->
state(cl, argv[
i])) {
void gpr_cmdline_set_survive_failure(gpr_cmdline *cl)
static int extra_state(gpr_cmdline *cl, char *str)
const char * extra_arg_name
std::string StrCat(const AlphaNum &a, const AlphaNum &b)
void * extra_arg_user_data
std::string gpr_cmdline_usage_string(gpr_cmdline *cl, const char *argv0)
ABSL_MUST_USE_RESULT std::string StrFormat(const FormatSpec< Args... > &format, const Args &... args)
GPRAPI void gpr_free(void *ptr)
void gpr_cmdline_destroy(gpr_cmdline *cl)
GPRAPI void * gpr_malloc(size_t size)
void gpr_cmdline_add_flag(gpr_cmdline *cl, const char *name, const char *help, int *value)
static int value_state(gpr_cmdline *cl, char *str)
static int print_usage_and_die(gpr_cmdline *cl)
GPRAPI void * gpr_zalloc(size_t size)
static void add_arg(gpr_cmdline *cl, const char *name, const char *help, argtype type, void *value)
static void add_args_to_usage(arg *a, std::vector< std::string > *s)
memcpy(mem, inblock.get(), min(CONTAINING_RECORD(inblock.get(), MEMBLOCK, data) ->size, size))
std::string StrJoin(Iterator start, Iterator end, absl::string_view sep, Formatter &&fmt)
void gpr_cmdline_add_string(gpr_cmdline *cl, const char *name, const char *help, const char **value)
void gpr_cmdline_add_int(gpr_cmdline *cl, const char *name, const char *help, int *value)
static int normal_state(gpr_cmdline *cl, char *str)
gpr_cmdline * gpr_cmdline_create(const char *description)
const char * extra_arg_help
void(* extra_arg)(void *user_data, const char *arg)
static arg * find_arg(gpr_cmdline *cl, char *name)
int(* state)(gpr_cmdline *cl, char *arg)
void gpr_cmdline_on_extra_arg(gpr_cmdline *cl, const char *name, const char *help, void(*on_extra_arg)(void *user_data, const char *arg), void *user_data)
int gpr_cmdline_parse(gpr_cmdline *cl, int argc, char **argv)
grpc
Author(s):
autogenerated on Thu Mar 13 2025 02:58:48