1 #include <directories.h>
\r
2 #include <directory.h>
\r
4 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(tesh);
\r
7 directories_new(void)
\r
9 directories_t directories = xbt_new0(s_directories_t, 1);
\r
11 directories->items = xbt_dynar_new(sizeof(directory_t), (void_f_pvoid_t)directory_free);
\r
17 directories_get_size(directories_t directories)
\r
25 return xbt_dynar_length(directories->items);
\r
29 directories_is_empty(directories_t directories)
\r
37 return (0 == xbt_dynar_length(directories->items));
\r
41 directories_add(directories_t directories, directory_t directory)
\r
49 xbt_dynar_foreach(directories->items, i, cur)
\r
51 if(!strcmp(cur->name, directory->name))
\r
55 xbt_dynar_push(directories->items, &directory);
\r
61 directories_contains(directories_t directories, directory_t directory)
\r
69 xbt_dynar_foreach(directories->items, i, cur)
\r
71 if(!strcmp((*cur)->name, directory->name))
\r
79 directories_load(directories_t directories, fstreams_t fstreams, xbt_dynar_t suffixes)
\r
81 directory_t directory;
\r
85 if(!directories || !fstreams || !suffixes)
\r
88 xbt_dynar_foreach(directories->items, i, directory)
\r
90 if((rv = directory_open(directory)))
\r
93 if((rv = directory_load(directory, fstreams, suffixes)))
\r
96 if((rv = directory_close(directory)))
\r
104 directories_free(void** directoriesptr)
\r
106 directories_t directories;
\r
108 if(!(*directoriesptr))
\r
111 directories = (directories_t)(*directoriesptr);
\r
113 if(directories->items)
\r
114 xbt_dynar_free(&(directories->items));
\r
116 free(*directoriesptr);
\r
117 *directoriesptr = NULL;
\r