Null filter no long requires 'capabilities' argument
- If no capabilities are provided, then the filter will have none. - Now logs its capabilities as startup (useful for debugging).
This commit is contained in:
parent
1c8205e005
commit
c235e181ce
@ -25,8 +25,12 @@ namespace
|
||||
|
||||
const char CAPABILITIES_PARAM[] = "capabilities";
|
||||
|
||||
MXS_ENUM_VALUE capability_values[] =
|
||||
const char* DEFAULT_RCAP_TYPE_NAME = "RCAP_TYPE_NONE";
|
||||
const uint64_t DEFAULT_RCAP_TYPE_VALUE = 0;
|
||||
|
||||
const MXS_ENUM_VALUE capability_values[] =
|
||||
{
|
||||
{ DEFAULT_RCAP_TYPE_NAME, DEFAULT_RCAP_TYPE_VALUE },
|
||||
{ "RCAP_TYPE_STMT_INPUT", RCAP_TYPE_STMT_INPUT },
|
||||
{ "RCAP_TYPE_CONTIGUOUS_INPUT", RCAP_TYPE_CONTIGUOUS_INPUT },
|
||||
{ "RCAP_TYPE_TRANSACTION_TRACKING", RCAP_TYPE_TRANSACTION_TRACKING },
|
||||
@ -36,6 +40,9 @@ MXS_ENUM_VALUE capability_values[] =
|
||||
{ NULL, 0 }
|
||||
};
|
||||
|
||||
size_t RCAP_TYPE_NAME_MAXLEN = 30; // strlen(RCAP_TYPE_TRANSACTION_TRACKING)
|
||||
size_t RCAP_TYPE_COUNT = sizeof(capability_values)/sizeof(capability_values[0]);
|
||||
|
||||
}
|
||||
|
||||
//
|
||||
@ -59,7 +66,13 @@ extern "C" MXS_MODULE* MXS_CREATE_MODULE()
|
||||
NULL, /* Thread init. */
|
||||
NULL, /* Thread finish. */
|
||||
{
|
||||
{ CAPABILITIES_PARAM, MXS_MODULE_PARAM_ENUM, NULL, MXS_MODULE_OPT_REQUIRED, capability_values },
|
||||
{
|
||||
CAPABILITIES_PARAM,
|
||||
MXS_MODULE_PARAM_ENUM,
|
||||
DEFAULT_RCAP_TYPE_NAME,
|
||||
MXS_MODULE_OPT_NONE,
|
||||
capability_values
|
||||
},
|
||||
{ MXS_END_MODULE_PARAMS }
|
||||
}
|
||||
};
|
||||
@ -74,7 +87,37 @@ extern "C" MXS_MODULE* MXS_CREATE_MODULE()
|
||||
NullFilter::NullFilter(const char* zName, uint64_t capabilities)
|
||||
: m_capabilities(capabilities)
|
||||
{
|
||||
MXS_NOTICE("Null filter [%s] created.", zName);
|
||||
const char format[] = "Null filter [%s] created, capabilities: ";
|
||||
|
||||
char message[sizeof(format) + strlen(zName) + (RCAP_TYPE_NAME_MAXLEN + 1) * RCAP_TYPE_COUNT + 1];
|
||||
|
||||
sprintf(message, format, zName);
|
||||
|
||||
if (m_capabilities)
|
||||
{
|
||||
const MXS_ENUM_VALUE* i = capability_values;
|
||||
const MXS_ENUM_VALUE* end = i + RCAP_TYPE_COUNT;
|
||||
|
||||
while (i != end)
|
||||
{
|
||||
if (i->enum_value != 0)
|
||||
{
|
||||
if ((m_capabilities & i->enum_value) == i->enum_value)
|
||||
{
|
||||
strcat(message, " ");
|
||||
strcat(message, i->name);
|
||||
}
|
||||
}
|
||||
|
||||
++i;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
strcat(message, " (none)");
|
||||
}
|
||||
|
||||
MXS_NOTICE("%s", message);
|
||||
}
|
||||
|
||||
NullFilter::~NullFilter()
|
||||
|
Loading…
x
Reference in New Issue
Block a user