NullFilter capabilities are now instance specific
There can now in one configuration be multiple Null filters, each with its own set of capabilities.
This commit is contained in:
@ -36,16 +36,6 @@ MXS_ENUM_VALUE capability_values[] =
|
|||||||
{ NULL, 0 }
|
{ NULL, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
struct unit_variables
|
|
||||||
{
|
|
||||||
uint64_t capabilities;
|
|
||||||
bool capabilities_set;
|
|
||||||
} this_unit =
|
|
||||||
{
|
|
||||||
0,
|
|
||||||
false
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -81,7 +71,8 @@ extern "C" MXS_MODULE* MXS_CREATE_MODULE()
|
|||||||
// NullFilter
|
// NullFilter
|
||||||
//
|
//
|
||||||
|
|
||||||
NullFilter::NullFilter(const char* zName)
|
NullFilter::NullFilter(const char* zName, uint64_t capabilities)
|
||||||
|
: m_capabilities(capabilities)
|
||||||
{
|
{
|
||||||
MXS_NOTICE("Null filter [%s] created.", zName);
|
MXS_NOTICE("Null filter [%s] created.", zName);
|
||||||
}
|
}
|
||||||
@ -97,16 +88,7 @@ NullFilter* NullFilter::create(const char* zName, char**, MXS_CONFIG_PARAMETER*
|
|||||||
|
|
||||||
uint64_t capabilities = config_get_enum(pParams, CAPABILITIES_PARAM, capability_values);
|
uint64_t capabilities = config_get_enum(pParams, CAPABILITIES_PARAM, capability_values);
|
||||||
|
|
||||||
if (this_unit.capabilities_set)
|
return new NullFilter(zName, capabilities);
|
||||||
{
|
|
||||||
MXS_WARNING("The capabilities reported by NullFilter are currently global, "
|
|
||||||
"and not specific for a particular NullFilter instance.");
|
|
||||||
}
|
|
||||||
|
|
||||||
this_unit.capabilities = capabilities;
|
|
||||||
this_unit.capabilities_set = true;
|
|
||||||
|
|
||||||
return new NullFilter(zName);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -123,10 +105,5 @@ void NullFilter::diagnostics(DCB* pDcb)
|
|||||||
|
|
||||||
uint64_t NullFilter::getCapabilities()
|
uint64_t NullFilter::getCapabilities()
|
||||||
{
|
{
|
||||||
if (!this_unit.capabilities_set)
|
return m_capabilities;
|
||||||
{
|
|
||||||
MXS_ERROR("getCapabilities() called before they have been set.");
|
|
||||||
}
|
|
||||||
|
|
||||||
return this_unit.capabilities;
|
|
||||||
}
|
}
|
||||||
|
@ -29,8 +29,11 @@ public:
|
|||||||
uint64_t getCapabilities();
|
uint64_t getCapabilities();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
NullFilter(const char* zName);
|
NullFilter(const char* zName, uint64_t m_capabilities);
|
||||||
|
|
||||||
NullFilter(const NullFilter&);
|
NullFilter(const NullFilter&);
|
||||||
NullFilter& operator = (const NullFilter&);
|
NullFilter& operator = (const NullFilter&);
|
||||||
|
|
||||||
|
private:
|
||||||
|
uint64_t m_capabilities;
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user