Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
not needed
[simgrid.git] / tools / tesh2 / src / variable.c
1 #include <variable.h>\r
2 \r
3 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(tesh);\r
4 \r
5 variable_t\r
6 variable_new(const char* name, const char* val)\r
7 {\r
8         variable_t variable;\r
9         \r
10         if(!name || !val)\r
11         {\r
12                 errno = EINVAL;\r
13                 return NULL;\r
14         }\r
15         \r
16         variable = xbt_new0(s_variable_t, 1);\r
17         \r
18         variable->name = strdup(name);\r
19         variable->val = strdup(val);\r
20         variable->used = 0;\r
21         variable->env = 0;\r
22         variable->err = 0;\r
23         \r
24         return variable;\r
25         \r
26 }\r
27 \r
28 int\r
29 variable_free(variable_t* variableptr)\r
30 {\r
31         if(!(*variableptr))\r
32                 return EINVAL;\r
33                 \r
34         free((*((variable_t*)(variableptr)))->name);\r
35         free((*((variable_t*)(variableptr)))->val);\r
36         \r
37         free(*variableptr);\r
38         \r
39         *variableptr = NULL;\r
40         return 0;\r
41 }\r
42 \r
43 \r
44 int\r
45 variable_is_used(variable_t variable)\r
46 {\r
47         if(!variable)\r
48         {\r
49                 errno = EINVAL;\r
50                 return 0;\r
51         }\r
52                 \r
53         return variable->used;\r
54 }\r
55 \r
56 \r
57 int\r
58 variable_set_used(variable_t variable)\r
59 {\r
60         if(!variable)\r
61                 return EINVAL;\r
62         \r
63         variable->used = 1;\r
64         \r
65         return 0;\r
66 }\r