Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
source code to manage the Windows Unix and Mac file formats.
[simgrid.git] / tools / tesh2 / src / variable.c
index e2f66a7..d89983c 100644 (file)
@@ -1,8 +1,69 @@
 #include <variable.h>\r
 \r
-typedef struct s_variable\r
+XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(tesh);\r
+\r
+variable_t\r
+variable_new(const char* name, const char* val)\r
+{\r
+       variable_t variable;\r
+       \r
+       if(!name || !val)\r
+       {\r
+               errno = EINVAL;\r
+               return NULL;\r
+       }\r
+       \r
+       variable = xbt_new0(s_variable_t, 1);\r
+       \r
+       variable->name = strdup(name);\r
+       variable->val = strdup(val);\r
+       variable->used = 0;\r
+       variable->env = 0;\r
+       variable->err = 0;\r
+       \r
+       return variable;\r
+       \r
+}\r
+\r
+int\r
+variable_free(variable_t* variableptr)\r
+{\r
+       if(!(*variableptr))\r
+               return EINVAL;\r
+       \r
+       if((*((variable_t*)(variableptr)))->name)\r
+               free((*((variable_t*)(variableptr)))->name);\r
+       \r
+       if((*((variable_t*)(variableptr)))->val)\r
+               free((*((variable_t*)(variableptr)))->val);\r
+       \r
+       free(*variableptr);\r
+       \r
+       *variableptr = NULL;\r
+       return 0;\r
+}\r
+\r
+\r
+int\r
+variable_is_used(variable_t variable)\r
+{\r
+       if(!variable)\r
+       {\r
+               errno = EINVAL;\r
+               return 0;\r
+       }\r
+               \r
+       return variable->used;\r
+}\r
+\r
+\r
+int\r
+variable_set_used(variable_t variable)\r
 {\r
-       char* name;\r
-       char* val;\r
-       int used;\r
-}s_variable_t;
\ No newline at end of file
+       if(!variable)\r
+               return EINVAL;\r
+       \r
+       variable->used = 1;\r
+       \r
+       return 0;\r
+}\r