+++ /dev/null
-#include <directories.h>\r
-#include <directory.h>\r
-\r
-XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(tesh);\r
-\r
-directories_t\r
-directories_new(void)\r
-{\r
- directories_t directories = xbt_new0(s_directories_t, 1);\r
- \r
- directories->items = xbt_dynar_new(sizeof(directory_t), (void_f_pvoid_t)directory_free);\r
- \r
- return directories;\r
-}\r
-\r
-int\r
-directories_get_size(directories_t directories)\r
-{\r
- if(!directories)\r
- {\r
- errno = EINVAL;\r
- return -1;\r
- }\r
-\r
- return xbt_dynar_length(directories->items);\r
-}\r
-\r
-int\r
-directories_is_empty(directories_t directories)\r
-{\r
- if(!directories)\r
- {\r
- errno = EINVAL;\r
- return -1;\r
- }\r
-\r
- return (0 == xbt_dynar_length(directories->items));\r
-}\r
-\r
-int\r
-directories_add(directories_t directories, directory_t directory)\r
-{\r
- directory_t cur;\r
- unsigned int i;\r
- \r
- if(!directories)\r
- return EINVAL;\r
- \r
- xbt_dynar_foreach(directories->items, i, cur)\r
- {\r
- if(!strcmp(cur->name, directory->name))\r
- return EEXIST;\r
- }\r
-\r
- xbt_dynar_push(directories->items, &directory);\r
-\r
- return 0;\r
-}\r
-\r
-int\r
-directories_contains(directories_t directories, directory_t directory)\r
-{\r
- directory_t* cur;\r
- unsigned int i;\r
- \r
- if(!directories)\r
- return EINVAL;\r
-\r
- xbt_dynar_foreach(directories->items, i, cur)\r
- {\r
- if(!strcmp((*cur)->name, directory->name))\r
- return 1;\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-int\r
-directories_load(directories_t directories, fstreams_t fstreams, xbt_dynar_t suffixes)\r
-{\r
- directory_t directory;\r
- int rv;\r
- unsigned int i;\r
- \r
- if(!directories || !fstreams || !suffixes)\r
- return EINVAL;\r
- \r
- xbt_dynar_foreach(directories->items, i, directory)\r
- {\r
- if((rv = directory_open(directory)))\r
- return rv;\r
- \r
- if((rv = directory_load(directory, fstreams, suffixes)))\r
- return rv;\r
- \r
- if((rv = directory_close(directory)))\r
- return rv;\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-int\r
-directories_free(void** directoriesptr)\r
-{\r
- directories_t directories;\r
- \r
- if(!(*directoriesptr))\r
- return EINVAL;\r
-\r
- directories = (directories_t)(*directoriesptr);\r
-\r
- xbt_dynar_free(&(directories->items));\r
- \r
- free(*directoriesptr);\r
- *directoriesptr = NULL;\r
- \r
- return 0; \r
-}\r