diff --git a/include/maxscale/filter.h b/include/maxscale/filter.h index d4f49cdc7..42effbed9 100644 --- a/include/maxscale/filter.h +++ b/include/maxscale/filter.h @@ -13,22 +13,16 @@ */ /** - * @file filter.h - The filter interface mechanisms - * - * Revision History - * - * Date Who Description - * 27/05/2014 Mark Riddoch Initial implementation - * + * @file include/maxscale/filter.h - The public filter interface */ #include -#include -#include -#include -#include -#include #include +#include +#include +#include +#include +#include MXS_BEGIN_DECLS @@ -56,19 +50,17 @@ typedef void *MXS_FILTER_SESSION; * The "module object" structure for a query router module * * The entry points are: - * createInstance Called by the service to create a new - * instance of the filter - * newSession Called to create a new user session - * within the filter - * closeSession Called when a session is closed - * freeSession Called when a session is freed - * setDownstream Sets the downstream component of the - * filter pipline - * routeQuery Called on each query that requires - * routing - * clientReply Called for each reply packet - * diagnostics Called to force the filter to print - * diagnostic output + * createInstance Called by the service to create a new instance of the filter + * newSession Called to create a new user session within the filter + * closeSession Called when a session is closed + * freeSession Called when a session is freed + * setDownstream Sets the downstream component of the filter pipline + * setUpstream Sets the upstream component of the filter pipline + * routeQuery Called on each query that requires routing + * clientReply Called for each reply packet + * diagnostics Called for diagnostic output + * getCapabilities Called to obtain the capabilities of the filter + * destroyInstance Called for destroying a filter instance * * @endverbatim * @@ -112,15 +104,8 @@ typedef struct filter_def struct filter_def *next; /**< Next filter in the chain of all filters */ } FILTER_DEF; -FILTER_DEF *filter_alloc(const char *, const char *); -void filter_free(FILTER_DEF *); -bool filter_load(FILTER_DEF* filter); FILTER_DEF *filter_find(const char *); -void filter_add_option(FILTER_DEF *, const char *); -void filter_add_parameter(FILTER_DEF *, const char *, const char *); -DOWNSTREAM *filter_apply(FILTER_DEF *, SESSION *, DOWNSTREAM *); -UPSTREAM *filter_upstream(FILTER_DEF *, void *, UPSTREAM *); -int filter_standard_parameter(const char *); + void dprintAllFilters(DCB *); void dprintFilter(DCB *, const FILTER_DEF *); void dListFilters(DCB *); diff --git a/server/core/maxscale/filter.h b/server/core/maxscale/filter.h new file mode 100644 index 000000000..1fb0a7079 --- /dev/null +++ b/server/core/maxscale/filter.h @@ -0,0 +1,32 @@ +#pragma once +/* + * Copyright (c) 2016 MariaDB Corporation Ab + * + * Use of this software is governed by the Business Source License included + * in the LICENSE.TXT file and at www.mariadb.com/bsl. + * + * Change Date: 2019-07-01 + * + * On the date above, in accordance with the Business Source License, use + * of this software will be governed by version 2 or later of the General + * Public License. + */ + +/** + * @file core/maxscale/filter.h - The private filter interface + */ + +#include + +MXS_BEGIN_DECLS + +void filter_add_option(FILTER_DEF *filter_def, const char *option); +void filter_add_parameter(FILTER_DEF *filter_def, const char *name, const char *value); +FILTER_DEF *filter_alloc(const char *name, const char *module_name); +DOWNSTREAM *filter_apply(FILTER_DEF *filte_def, SESSION *session, DOWNSTREAM *downstream); +void filter_free(FILTER_DEF *filter_def); +bool filter_load(FILTER_DEF *filter_def); +int filter_standard_parameter(const char *name); +UPSTREAM *filter_upstream(FILTER_DEF *filter_def, void *fsession, UPSTREAM *upstream); + +MXS_END_DECLS diff --git a/server/core/service.c b/server/core/service.c index 0d8559b76..5eb558a05 100644 --- a/server/core/service.c +++ b/server/core/service.c @@ -38,6 +38,7 @@ * * @endverbatim */ +#include #include #include #include @@ -47,26 +48,25 @@ #include #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include - +#include +#include "maxscale/filter.h" #include "maxscale/service.h" /** Base value for server weights */ diff --git a/server/core/session.c b/server/core/session.c index b78326e3f..5ffc00a15 100644 --- a/server/core/session.c +++ b/server/core/session.c @@ -27,21 +27,22 @@ * * @endverbatim */ +#include #include #include #include #include #include #include -#include -#include -#include -#include -#include #include -#include +#include #include +#include #include +#include +#include +#include +#include "maxscale/filter.h" /* A session with null values, used for initialization */ static SESSION session_initialized = SESSION_INIT; diff --git a/server/core/test/testfilter.c b/server/core/test/testfilter.c index 2fb88b68a..ebdf84a6f 100644 --- a/server/core/test/testfilter.c +++ b/server/core/test/testfilter.c @@ -33,7 +33,7 @@ #include #include -#include +#include "../maxscale/filter.h" /**