#include "query.h"
#include "array.h"
+
typedef filter_token filter_type_t;
typedef hook_token filter_result_t;
typedef param_token filter_param_id_t;
typedef void *(*filter_context_constructor_t)(void);
typedef void (*filter_context_destructor_t)(void*);
+typedef void (*filter_async_handler_t)(filter_context_t *context,
+ const filter_hook_t *result);
+
+/** Number of filter currently running.
+ */
+extern uint32_t filter_running;
/* Registration.
*/
__attribute__((nonnull(2)))
filter_param_id_t filter_param_register(filter_type_t filter, const char *name);
+__attribute__((nonnull))
+void filter_async_handler_register(filter_async_handler_t handler);
/* Filter builder.
*/
/* Filter context
*/
-__attribute__((nonnull))
+__attribute__((nonnull(1)))
void filter_context_prepare(filter_context_t *context, void* qctx);
__attribute__((nonnull))
void filter_context_wipe(filter_context_t *context);
+__attribute__((nonnull))
+void filter_post_async_result(filter_context_t *context, filter_result_t result);
+
#endif