1 /*
2  *	aprsc
3  *
4  *	(c) Matti Aarnio, OH2MQK, <oh2mqk@sral.fi>
5  *
6  *     This program is licensed under the BSD license, which can be found
7  *     in the file LICENSE.
8  *
9  */
10 
11 #ifndef FILTER_H
12 #define FILTER_H 1
13 
14 #include "worker.h"
15 #include "cellmalloc.h"
16 
17 extern void filter_init(void);
18 extern int  filter_parse(struct client_t *c, const char *filt, int is_user_filter);
19 extern void filter_free(struct filter_t *c);
20 extern int  filter_process(struct worker_t *self, struct client_t *c, struct pbuf_t *pb);
21 extern int  filter_commands(struct worker_t *self, struct client_t *c, int in_message, const char *s, const int len);
22 
23 extern void filter_preprocess_dupefilter(struct pbuf_t *pb);
24 extern void filter_postprocess_dupefilter(struct pbuf_t *pb);
25 
26 extern void filter_entrycall_cleanup(void);
27 extern void filter_entrycall_atend(void);
28 extern int  filter_entrycall_cellgauge;
29 extern void filter_entrycall_dump(FILE *fp);
30 
31 extern void filter_wx_cleanup(void);
32 extern void filter_wx_atend(void);
33 extern int  filter_wx_cellgauge;
34 extern void filter_wx_dump(FILE *fp);
35 
36 extern int  filter_cellgauge;
37 
38 extern int have_filtered_listeners;
39 
40 extern float filter_lat2rad(float lat);
41 extern float filter_lon2rad(float lon);
42 
43 #ifndef _FOR_VALGRIND_
44 extern void filter_cell_stats(struct cellstatus_t *filter_cellst,
45 	struct cellstatus_t *filter_entrycall_cellst,
46 	struct cellstatus_t *filter_wx_cellst);
47 #endif
48 
49 #endif /* FILTER_H */
50