aboutsummaryrefslogtreecommitdiffstats
path: root/test/test1.c
blob: eea57593015d82172999a686135f2a96db8336e5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <stdio.h>
#include <stdlib.h>

#include "../arg.h"

s_arg_ip src_ip = 
{
	.port = 8080,
	.ip = 0x7f000001
};

s_arg_range freq_range = 
{
	.start = 88,
	.end = 108,
	.step = 100e3
};

s_arg_float ratio_float = 
{
	.val = 0.8
};

s_arg_list color_name_list = 
{
	.num = 3,
	.default_val = "RED",
	.vals = {"RED","GREEN","BLUE"}
};

s_arg_val number_val = 
{
	.ptr = NULL
};

//cant be const
def_arg cmd_arg[] = 
{
	ARG_ENTRY("-a",IP,&src_ip),
	ARG_ENTRY("-b",RANGE,&freq_range),
	ARG_ENTRY("-c",FLOAT,&ratio_float),
	ARG_ENTRY("-d",LIST,&color_name_list),
	ARG_ENTRY("-e",VAL,&number_val),
	ARG_ENTRY("-f",FLAG,NULL),
	ARG_ENTRY("-g",FLAG,NULL),
	{NULL,0,NULL}
};


int main( int argc, char **argv )
{

	int i=0;
	arg_t *cfg = NULL;

	i = 0;
	while ( cmd_arg[i].param != NULL )
	{
		printf("%s\n",cmd_arg[i].param);
		i++;
	}

	cfg = arg_load( argc, argv, cmd_arg );

	if (cfg->size == 0)
	{
		printf("No arguments found\n");
		goto exit_error;
	}

	for (i=0;i<cfg->size;i++)
	{
		printf("TYPE:%d\n", cfg->arg[i]->type);
	}

	arg_print( cfg );

	arg_free( cfg );

	return 0;

exit_error:
	arg_free( cfg );

	return -1;

}