1 #include <fstreams.h>
\r
2 #include <excludes.h>
\r
5 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(tesh);
\r
8 fstreams_new(void_f_pvoid_t fn_finalize)
\r
10 fstreams_t fstreams = xbt_new0(s_fstreams_t, 1);
\r
11 fstreams->items = xbt_dynar_new(sizeof(fstream_t), fn_finalize);
\r
17 fstreams_exclude(fstreams_t fstreams, excludes_t excludes)
\r
22 if(!fstreams || !excludes)
\r
25 if(excludes_is_empty(excludes))
\r
28 /* collecte the file streams to exclude */
\r
29 xbt_dynar_foreach(fstreams->items, i, fstream)
\r
31 if(excludes_contains(excludes, fstream))
\r
33 INFO1("excluding %s",fstream->name);
\r
34 xbt_dynar_cursor_rm(fstreams->items, &i);
\r
42 fstreams_contains(fstreams_t fstreams, fstream_t fstream)
\r
47 if(!fstreams || !fstream)
\r
53 xbt_dynar_foreach(fstreams->items, i, cur)
\r
55 if(!strcmp(cur->name, fstream->name) && !strcmp(cur->directory, fstream->directory))
\r
63 fstreams_load(fstreams_t fstreams)
\r
71 xbt_dynar_foreach(fstreams->items, i, fstream)
\r
73 fstream_open(fstream);
\r
81 fstreams_add(fstreams_t fstreams, fstream_t fstream)
\r
86 xbt_dynar_push(fstreams->items, &fstream);
\r
92 fstreams_free(void** fstreamsptr)
\r
94 if(!(* fstreamsptr))
\r
97 if((*((fstreams_t*)fstreamsptr))->items)
\r
98 xbt_dynar_free(&((*((fstreams_t*)fstreamsptr))->items));
\r
100 free(*fstreamsptr);
\r
102 *fstreamsptr = NULL;
\r
107 fstreams_get_size(fstreams_t fstreams)
\r
115 return xbt_dynar_length(fstreams->items);
\r
119 fstreams_is_empty(fstreams_t fstreams)
\r
127 return (0 == xbt_dynar_length(fstreams->items));
\r