#include <jansson.h>
#include <glib.h>
+#include <tr_list.h>
#include <tr_name_internal.h>
#include <trust_router/tr_constraint.h>
#include <trust_router/tid.h>
typedef struct tr_filter {
TR_FILTER_TYPE type;
- GPtrArray *lines;
+ TR_LIST *lines;
} TR_FILTER;
-typedef struct tr_filter_iter {
- TR_FILTER *filter;
- guint ii;
-} TR_FILTER_ITER;
-
typedef struct tr_filter_set TR_FILTER_SET;
struct tr_filter_set {
TR_FILTER *this;
int tr_fspec_matches(TR_FSPEC *fspec, TR_FILTER_TYPE ftype, TR_FILTER_TARGET *target);
-TR_FILTER_ITER *tr_filter_iter_new(TALLOC_CTX *mem_ctx);
-void tr_filter_iter_free(TR_FILTER_ITER *iter);
-TR_FLINE *tr_filter_iter_first(TR_FILTER_ITER *iter, TR_FILTER *filter);
-TR_FLINE *tr_filter_iter_next(TR_FILTER_ITER *iter);
+/* Iterator for TR_FILTER.lines */
+typedef TR_LIST_ITER TR_FILTER_ITER;
+#define tr_filter_iter_new(CTX) (tr_list_iter_new(CTX))
+#define tr_filter_iter_free(ITER) (tr_list_iter_free(ITER))
+#define tr_filter_iter_first(ITER, FILT) (tr_list_iter_first((ITER), (FILT)->lines))
+#define tr_filter_iter_next(ITER) (tr_list_iter_next(ITER))
+#define tr_filter_add_line(FILT, LINE) ((TR_FLINE *) tr_list_add((FILT)->lines, (LINE)))
TR_FLINE_ITER *tr_fline_iter_new(TALLOC_CTX *mem_ctx);
void tr_fline_iter_free(TR_FLINE_ITER *iter);