58 #ifndef _LIBUTIL_CMD_LN_H_ 59 #define _LIBUTIL_CMD_LN_H_ 65 #include <sphinxbase/sphinxbase_export.h> 102 #define ARG_REQUIRED (1<<0) 106 #define ARG_INTEGER (1<<1) 110 #define ARG_FLOATING (1<<2) 114 #define ARG_STRING (1<<3) 118 #define ARG_BOOLEAN (1<<4) 122 #define ARG_STRING_LIST (1<<5) 127 #define REQARG_INTEGER (ARG_INTEGER | ARG_REQUIRED) 131 #define REQARG_FLOATING (ARG_FLOATING | ARG_REQUIRED) 135 #define REQARG_STRING (ARG_STRING | ARG_REQUIRED) 139 #define REQARG_BOOLEAN (ARG_BOOLEAN | ARG_REQUIRED) 144 #define ARG_INT32 ARG_INTEGER 148 #define ARG_FLOAT32 ARG_FLOATING 152 #define ARG_FLOAT64 ARG_FLOATING 156 #define REQARG_INT32 (ARG_INT32 | ARG_REQUIRED) 160 #define REQARG_FLOAT32 (ARG_FLOAT32 | ARG_REQUIRED) 164 #define REQARG_FLOAT64 (ARG_FLOAT64 | ARG_REQUIRED) 172 #define ARG_STRINGIFY(s) ARG_STRINGIFY1(s) 173 #define ARG_STRINGIFY1(s) #s 257 char const *filename,
334 #define cmd_ln_boolean_r(c,n) (cmd_ln_int_r(c,n) != 0) 383 #define cmd_ln_set_boolean_r(c,n,b) (cmd_ln_set_int_r(c,n,(b)!=0)) 388 #define cmd_ln_int32_r(c,n) (int32)cmd_ln_int_r(c,n) 389 #define cmd_ln_float32_r(c,n) (float32)cmd_ln_float_r(c,n) 390 #define cmd_ln_float64_r(c,n) (float64)cmd_ln_float_r(c,n) 391 #define cmd_ln_set_int32_r(c,n,i) cmd_ln_set_int_r(c,n,i) 392 #define cmd_ln_set_float32_r(c,n,f) cmd_ln_set_float_r(c,n,(double)f) 393 #define cmd_ln_set_float64_r(c,n,f) cmd_ln_set_float_r(c,n,(double)f) 451 char const *filename,
464 char const* default_argfn,
497 #define cmd_ln_exists(name) cmd_ln_exists_r(cmd_ln_get(), name) 505 #define cmd_ln_access(name) cmd_ln_access_r(cmd_ln_get(), name) 513 #define cmd_ln_str(name) cmd_ln_str_r(cmd_ln_get(), name) 521 #define cmd_ln_str_list(name) cmd_ln_str_list_r(cmd_ln_get(), name) 529 #define cmd_ln_int32(name) (int32)cmd_ln_int_r(cmd_ln_get(), name) 536 #define cmd_ln_float32(name) (float32)cmd_ln_float_r(cmd_ln_get(), name) 543 #define cmd_ln_float64(name) (float64)cmd_ln_float_r(cmd_ln_get(), name) 550 #define cmd_ln_boolean(name) cmd_ln_boolean_r(cmd_ln_get(), name) 558 #define cmd_ln_set_str(n,s) cmd_ln_set_str_r(cmd_ln_get(),n,s) 565 #define cmd_ln_set_int32(n,i) cmd_ln_set_int_r(cmd_ln_get(),n,i) 572 #define cmd_ln_set_float32(n,f) cmd_ln_set_float_r(cmd_ln_get(),n,f) 579 #define cmd_ln_set_float64(n,f) cmd_ln_set_float_r(cmd_ln_get(),n,f) 586 #define cmd_ln_set_boolean(n,b) cmd_ln_set_boolean_r(cmd_ln_get(),n,b) 595 #define cmd_ln_print_help(f,d) cmd_ln_print_help_r(cmd_ln_get(),f,d) char const * name
Name of the command line switch.
SPHINXBASE_EXPORT cmd_ln_t * cmd_ln_retain(cmd_ln_t *cmdln)
Retain ownership of a command-line argument set.
SPHINXBASE_EXPORT double cmd_ln_float_r(cmd_ln_t *cmdln, char const *name)
Retrieve a floating-point number from a command-line object.
SPHINXBASE_EXPORT long cmd_ln_int_r(cmd_ln_t *cmdln, char const *name)
Retrieve an integer from a command-line object.
SPHINXBASE_EXPORT anytype_t * cmd_ln_access_r(cmd_ln_t *cmdln, char const *name)
Access the generic type union for a command line argument.
char const * doc
Documentation/description string.
SPHINXBASE_EXPORT void cmd_ln_set_int_r(cmd_ln_t *cmdln, char const *name, long iv)
Set an integer in a command-line object.
SPHINXBASE_EXPORT int cmd_ln_free_r(cmd_ln_t *cmdln)
Release a command-line argument set and all associated strings.
int type
Type of the argument in question.
SPHINXBASE_EXPORT int cmd_ln_exists_r(cmd_ln_t *cmdln, char const *name)
Re-entrant version of cmd_ln_exists().
SPHINXBASE_EXPORT cmd_ln_t * cmd_ln_parse_r(cmd_ln_t *inout_cmdln, arg_t const *defn, int32 argc, char *argv[], int32 strict)
Parse a list of strings into argumetns.
Basic type definitions used in Sphinx.
SPHINXBASE_EXPORT char const * cmd_ln_str_r(cmd_ln_t *cmdln, char const *name)
Retrieve a string from a command-line object.
SPHINXBASE_EXPORT char const ** cmd_ln_str_list_r(cmd_ln_t *cmdln, char const *name)
Retrieve an array of strings from a command-line object.
SPHINXBASE_EXPORT cmd_ln_t * cmd_ln_get(void)
Retrieve the global cmd_ln_t object used by non-re-entrant functions.
SPHINXBASE_EXPORT void cmd_ln_print_help_r(cmd_ln_t *cmdln, FILE *fp, const arg_t *defn)
Print a help message listing the valid argument names, and the associated attributes as given in defn...
SPHINXBASE_EXPORT void cmd_ln_print_values_r(cmd_ln_t *cmdln, FILE *fp, const arg_t *defn)
Print current configuration values and defaults.
char const * deflt
Default value (as a character string), or NULL if none.
SPHINXBASE_EXPORT cmd_ln_t * cmd_ln_init(cmd_ln_t *inout_cmdln, arg_t const *defn, int32 strict,...)
Create a cmd_ln_t from NULL-terminated list of arguments.
SPHINXBASE_EXPORT void cmd_ln_appl_exit(void)
Finalization routine corresponding to cmd_ln_appl_enter().
SPHINXBASE_EXPORT cmd_ln_t * cmd_ln_parse_file_r(cmd_ln_t *inout_cmdln, arg_t const *defn, char const *filename, int32 strict)
Parse an arguments file by deliminating on " \r\t\n" and putting each tokens into an argv[] for cmd_l...
Argument definition structure.
Opaque structure used to hold the results of command-line parsing.
SPHINXBASE_EXPORT void cmd_ln_set_float_r(cmd_ln_t *cmdln, char const *name, double fv)
Set a floating-point number in a command-line object.
SPHINXBASE_EXPORT int32 cmd_ln_parse(const arg_t *defn, int32 argc, char *argv[], int32 strict)
Non-reentrant version of cmd_ln_parse().
SPHINXBASE_EXPORT void cmd_ln_set_str_r(cmd_ln_t *cmdln, char const *name, char const *str)
Set a string in a command-line object.
SPHINXBASE_EXPORT void cmd_ln_free(void)
Free the global command line, if any exists.
SPHINXBASE_EXPORT void cmd_ln_set_str_extra_r(cmd_ln_t *cmdln, char const *name, char const *str)
Set a string in a command-line object even if it is not present in argument description.
SPHINXBASE_EXPORT void cmd_ln_appl_enter(int argc, char *argv[], char const *default_argfn, const arg_t *defn)
Old application initialization routine for Sphinx3 code.
SPHINXBASE_EXPORT int32 cmd_ln_parse_file(const arg_t *defn, char const *filename, int32 strict)
Parse an arguments file by deliminating on " \r\t\n" and putting each tokens into an argv[] for cmd_l...