ROSS
tw-opts.h
Go to the documentation of this file.
1#ifndef INC_tw_opts_h
2#define INC_tw_opts_h
3
4#include <stdio.h>
5
7{
9 TWOPTTYPE_ULONG, /**< value must be an "unsigned long*" */
10 TWOPTTYPE_ULONGLONG, /**< value must be an "unsigned long long*" */
11 TWOPTTYPE_UINT, /**< value must be an "unsigned int*" */
12 TWOPTTYPE_STIME, /**< value must be a "tw_stime*" */
13 TWOPTTYPE_DOUBLE, /**< value must be a "double *" */
14 TWOPTTYPE_CHAR, /**< value must be a "char *" */
15 TWOPTTYPE_FLAG, /**< value must be an "unsigned int*" */
16 TWOPTTYPE_ARGSFILE, /**< value must be a "char *" */
18};
20
21typedef struct tw_optdef tw_optdef;
23{
25 const char *name;
26 const char *help;
27 void *value;
28};
29
30#define TWOPT_GROUP(h) { TWOPTTYPE_GROUP, NULL, (h), NULL }
31#define TWOPT_ULONG(n,v,h) { TWOPTTYPE_ULONG, (n), (h), &(v) }
32#define TWOPT_ULONGLONG(n,v,h) { TWOPTTYPE_ULONGLONG, (n), (h), &(v) }
33#define TWOPT_UINT(n,v,h) { TWOPTTYPE_UINT, (n), (h), &(v) }
34#define TWOPT_STIME(n,v,h) { TWOPTTYPE_STIME, (n), (h), &(v) }
35#define TWOPT_DOUBLE(n,v,h) { TWOPTTYPE_DOUBLE, (n), (h), &(v) }
36#define TWOPT_CHAR(n,v,h) { TWOPTTYPE_CHAR, (n), (h), &(v) }
37#define TWOPT_ARGSFILE(n,v,h) { TWOPTTYPE_ARGSFILE, (n), (h), &(v) }
38#define TWOPT_FLAG(n,v,h) { TWOPTTYPE_FLAG, (n), (h), &(v) }
39#define TWOPT_END() { (tw_opttype)0, NULL, NULL, NULL }
40
41/** Remove options from the command line arguments. */
42extern void tw_opt_parse(int *argc, char ***argv);
43/** Add an opt group */
44extern void tw_opt_add(const tw_optdef *options);
45/** Pretty-print the option descriptions (for --help) */
46extern void tw_opt_print(void);
47/** Pretty-print the option descriptions and current values */
48extern void tw_opt_settings(FILE *f);
49
50#endif
void tw_opt_print(void)
Definition tw-opts.c:224
void tw_opt_parse(int *argc, char ***argv)
Definition tw-opts.c:552
tw_opttype
Definition tw-opts.h:7
@ TWOPTTYPE_CHAR
Definition tw-opts.h:14
@ TWOPTTYPE_SHOWHELP
Definition tw-opts.h:17
@ TWOPTTYPE_ARGSFILE
Definition tw-opts.h:16
@ TWOPTTYPE_DOUBLE
Definition tw-opts.h:13
@ TWOPTTYPE_ULONGLONG
Definition tw-opts.h:10
@ TWOPTTYPE_FLAG
Definition tw-opts.h:15
@ TWOPTTYPE_STIME
Definition tw-opts.h:12
@ TWOPTTYPE_UINT
Definition tw-opts.h:11
@ TWOPTTYPE_GROUP
Definition tw-opts.h:8
@ TWOPTTYPE_ULONG
Definition tw-opts.h:9
void tw_opt_add(const tw_optdef *options)
Definition tw-opts.c:23
void tw_opt_settings(FILE *f)
Definition tw-opts.c:147
tw_opttype
Definition tw-opts.h:7
const char * name
Definition tw-opts.h:25
const char * help
Definition tw-opts.h:26
tw_opttype type
Definition tw-opts.h:24
void * value
Definition tw-opts.h:27