Add getCapabilities to filters
Common capabilities are now defined in routing.h. The common capabilities can be defined using bits 0 - 15. Router capabilities are defined using bits 16-31 and filter capabilities (should there ever be such) using bits 32-47. So, to find out the capabilities of a service you only need to OR the capabilities of the router and all filters together. For instance, if a single filter needs statement based routing, then that is what is done.
This commit is contained in:
@ -25,6 +25,7 @@
|
||||
*/
|
||||
|
||||
#include <maxscale/cdefs.h>
|
||||
#include <maxscale/routing.h>
|
||||
#include <maxscale/dcb.h>
|
||||
#include <maxscale/session.h>
|
||||
#include <maxscale/buffer.h>
|
||||
@ -83,6 +84,7 @@ typedef struct filter_object
|
||||
int (*routeQuery)(FILTER *instance, void *fsession, GWBUF *queue);
|
||||
int (*clientReply)(FILTER *instance, void *fsession, GWBUF *queue);
|
||||
void (*diagnostics)(FILTER *instance, void *fsession, DCB *dcb);
|
||||
uint64_t (*getCapabilities)();
|
||||
} FILTER_OBJECT;
|
||||
|
||||
/**
|
||||
@ -90,7 +92,7 @@ typedef struct filter_object
|
||||
* is changed these values must be updated in line with the rules in the
|
||||
* file modinfo.h.
|
||||
*/
|
||||
#define FILTER_VERSION {2, 1, 0}
|
||||
#define FILTER_VERSION {2, 2, 0}
|
||||
/**
|
||||
* The definition of a filter from the configuration file.
|
||||
* This is basically the link between a plugin to load and the
|
||||
@ -121,6 +123,22 @@ void dprintAllFilters(DCB *);
|
||||
void dprintFilter(DCB *, FILTER_DEF *);
|
||||
void dListFilters(DCB *);
|
||||
|
||||
/**
|
||||
* Specifies capabilities specific for filters. Common capabilities
|
||||
* are defined by @c routing_capability_t.
|
||||
*
|
||||
* @see routing_capability_t
|
||||
*
|
||||
* @note The values of the capabilities here *must* be between 0x000100000000
|
||||
* and 0x800000000000, that is, bits 32 to 47.
|
||||
*/
|
||||
|
||||
/*
|
||||
typedef enum filter_capability
|
||||
{
|
||||
} filter_capability_t;
|
||||
*/
|
||||
|
||||
MXS_END_DECLS
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user