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:
@ -30,6 +30,7 @@
|
||||
*/
|
||||
|
||||
#include <maxscale/cdefs.h>
|
||||
#include <maxscale/routing.h>
|
||||
#include <maxscale/service.h>
|
||||
#include <maxscale/session.h>
|
||||
#include <maxscale/buffer.h>
|
||||
@ -93,14 +94,19 @@ typedef struct router_object
|
||||
#define ROUTER_VERSION { 2, 0, 0 }
|
||||
|
||||
/**
|
||||
* Router capability type. Indicates what kind of input router accepts.
|
||||
* Specifies capabilities specific for routers. Common capabilities
|
||||
* are defined by @c routing_capability_t.
|
||||
*
|
||||
* @see routing_capability_t
|
||||
*
|
||||
* @note The values of the capabilities here *must* be between 0x00010000
|
||||
* and 0x80000000, that is, bits 16 to 31.
|
||||
*/
|
||||
typedef enum router_capability_t
|
||||
typedef enum router_capability
|
||||
{
|
||||
RCAP_TYPE_UNDEFINED = 0x00,
|
||||
RCAP_TYPE_STMT_INPUT = 0x01, /**< Statement per buffer */
|
||||
RCAP_TYPE_PACKET_INPUT = 0x02, /**< Data as it was read from DCB */
|
||||
RCAP_TYPE_NO_RSESSION = 0x04 /**< Router does not use router sessions */
|
||||
RCAP_TYPE_NO_RSESSION = 0x00010000, /**< Router does not use router sessions */
|
||||
RCAP_TYPE_NO_USERS_INIT = 0x00020000, /**< Prevent the loading of authenticator
|
||||
users when the service is started */
|
||||
} router_capability_t;
|
||||
|
||||
MXS_END_DECLS
|
||||
|
Reference in New Issue
Block a user