1 #include <directories.h>
\r
2 #include <directory.h>
\r
3 \r XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(tesh);
4 \r\rdirectories_t
\r directories_new(void)
\r
6 \rdirectories_t directories = xbt_new0(s_directories_t, 1);
7 \r\rdirectories->items =
8 xbt_dynar_new(sizeof(directory_t), (void_f_pvoid_t) directory_free);
9 \r\rreturn directories;
12 \r\rint
\r directories_get_size(directories_t directories)
\r
19 \r\rreturn xbt_dynar_length(directories->items);
22 \r\rint
\r directories_is_empty(directories_t directories)
\r
29 \r\rreturn (0 == xbt_dynar_length(directories->items));
32 \r\rint
\r directories_add(directories_t directories, directory_t directory)
\r
38 \r\rxbt_dynar_foreach(directories->items, i, cur)
\r {
39 \rif (!strcmp(cur->name, directory->name))
42 \r\rxbt_dynar_push(directories->items, &directory);
47 directories_contains(directories_t directories, directory_t directory)
\r
53 \r\rxbt_dynar_foreach(directories->items, i, cur)
\r {
54 \rif (!strcmp((*cur)->name, directory->name))
61 directories_load(directories_t directories, fstreams_t fstreams,
62 xbt_dynar_t suffixes)
\r
64 \rdirectory_t directory;
67 \r\rif (!directories || !fstreams || !suffixes)
69 \r\rxbt_dynar_foreach(directories->items, i, directory)
\r {
70 \rif ((rv = directory_open(directory)))
72 \r\rif ((rv = directory_load(directory, fstreams, suffixes)))
74 \r\rif ((rv = directory_close(directory)))
80 \r\rint
\r directories_free(void **directoriesptr)
\r
82 \rdirectories_t directories;
83 \r\rif (!(*directoriesptr))
85 \r\rdirectories = (directories_t) (*directoriesptr);
86 \r\rif (directories->items)
87 \rxbt_dynar_free(&(directories->items));
88 \r\rfree(*directoriesptr);
89 \r*directoriesptr = NULL;