1 #include <directories.h>
4 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(tesh);
9 directories_t directories = xbt_new0(s_directories_t, 1);
11 if(!(directories->items = vector_new(8, directory_free)))
21 directories_get_size(directories_t directories)
29 return vector_get_size(directories->items);
33 directories_is_empty(directories_t directories)
41 return vector_is_empty(directories->items);
45 directories_add(directories_t directories, directory_t directory)
52 vector_rewind(directories->items);
54 while((cur = vector_get(directories->items)))
56 if(!strcmp(cur->name, directory->name))
59 vector_move_next(directories->items);
62 return vector_push_back(directories->items, directory);
66 directories_contains(directories_t directories, directory_t directory)
73 vector_rewind(directories->items);
75 while((cur = vector_get(directories->items)))
77 if(!strcmp(cur->name, directory->name))
80 vector_move_next(directories->items);
87 directories_load(directories_t directories, fstreams_t fstreams, lstrings_t suffixes)
89 directory_t directory;
92 if(!directories || !fstreams || !suffixes)
95 vector_rewind(directories->items);
97 while((directory = vector_get(directories->items)))
99 if((rv = directory_open(directory)))
102 if((rv = directory_load(directory, fstreams, suffixes)))
105 if((rv = directory_close(directory)))
108 vector_move_next(directories->items);
117 directories_free(void** directoriesptr)
121 if(!(*directoriesptr))
124 if((rv = vector_free(&((*((directories_t*)directoriesptr))->items))))
127 free(*directoriesptr);
128 *directoriesptr = NULL;