Consolidate decoder code by introducing prepare_filter_node().
[paraslash.git] / filter.h
index 15bfaf8cdb0c2533c463fe8272d21e5528b80dbd..ec8631f8a866823c69a32b6d8b5aafe834d38b22 100644 (file)
--- a/filter.h
+++ b/filter.h
@@ -32,6 +32,8 @@ struct filter_node {
        struct list_head callbacks;
        /** A pointer to the configuration of this instance. */
        void *conf;
+       struct btr_node *btrn;
+       struct task task;
 };
 
 /** Describes one running instance of a chain of filters */
@@ -191,6 +193,10 @@ struct filter {
 
        /** The help texts for this filter. */
        struct ggo_help help;
+
+       void (*pre_select)(struct sched *s, struct task *t);
+       void (*post_select)(struct sched *s, struct task *t);
+       btr_command_handler execute;
 };
 
 void close_filters(struct filter_chain *fc);
@@ -198,6 +204,7 @@ void filter_init(void);
 int check_filter_arg(char *filter_arg, void **conf);
 void filter_post_select(__a_unused struct sched *s, struct task *t);
 void print_filter_helps(int detailed);
+int prepare_filter_node(struct btr_node *btrn, size_t min_len);
 
 static inline void write_int16_host_endian(char *buf, int val)
 {