Make filter parameters a part of the definition
The filter parameters are now a part of the filter definition.
This commit is contained in:
parent
fd39291542
commit
b180c346d9
@ -53,15 +53,6 @@ static struct
|
||||
std::vector<SFilterDef> filters;
|
||||
} this_unit;
|
||||
|
||||
/**
|
||||
* Free filter parameters
|
||||
* @param filter FilterDef whose parameters are to be freed
|
||||
*/
|
||||
static void filter_free_parameters(FilterDef* filter)
|
||||
{
|
||||
delete filter->parameters;
|
||||
}
|
||||
|
||||
/**
|
||||
* Allocate a new filter
|
||||
*
|
||||
@ -111,19 +102,10 @@ FilterDef::FilterDef(std::string name,
|
||||
MXS_CONFIG_PARAMETER* params)
|
||||
: name(name)
|
||||
, module(module)
|
||||
, parameters(NULL)
|
||||
, parameters(*params)
|
||||
, filter(instance)
|
||||
, obj(object)
|
||||
{
|
||||
// TODO: Add config_clone_param_chain
|
||||
parameters = new MXS_CONFIG_PARAMETER;
|
||||
for (auto p : *params)
|
||||
{
|
||||
parameters->set(p.first, p.second);
|
||||
}
|
||||
|
||||
// Store module, used when the filter is serialized
|
||||
parameters->set(CN_MODULE, module);
|
||||
}
|
||||
|
||||
FilterDef::~FilterDef()
|
||||
@ -132,8 +114,6 @@ FilterDef::~FilterDef()
|
||||
{
|
||||
obj->destroyInstance(filter);
|
||||
}
|
||||
|
||||
filter_free_parameters(this);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -378,7 +358,7 @@ json_t* filter_parameters_to_json(const SFilterDef& filter)
|
||||
|
||||
/** Add custom module parameters */
|
||||
const MXS_MODULE* mod = get_module(filter->module.c_str(), MODULE_FILTER);
|
||||
config_add_module_params_json(filter->parameters,
|
||||
config_add_module_params_json(&filter->parameters,
|
||||
{CN_TYPE, CN_MODULE},
|
||||
config_filter_params,
|
||||
mod->parameters,
|
||||
@ -517,7 +497,7 @@ static bool create_filter_config(const SFilterDef& filter, const char* filename)
|
||||
const MXS_MODULE* mod = get_module(filter->module.c_str(), NULL);
|
||||
mxb_assert(mod);
|
||||
|
||||
string config_str = generate_config_string(filter->name, *filter->parameters,
|
||||
string config_str = generate_config_string(filter->name, filter->parameters,
|
||||
config_filter_params, mod->parameters);
|
||||
if (dprintf(file, "%s", config_str.c_str()) == -1)
|
||||
{
|
||||
|
@ -36,12 +36,12 @@ struct FilterDef : public MXS_FILTER_DEF
|
||||
MXS_CONFIG_PARAMETER* params);
|
||||
~FilterDef();
|
||||
|
||||
std::string name; /**< The Filter name */
|
||||
std::string module; /**< The module to load */
|
||||
MXS_CONFIG_PARAMETER* parameters; /**< The filter parameters */
|
||||
MXS_FILTER* filter; /**< The runtime filter */
|
||||
MXS_FILTER_OBJECT* obj; /**< The "MODULE_OBJECT" for the filter */
|
||||
mutable std::mutex lock;
|
||||
std::string name; /**< The Filter name */
|
||||
std::string module; /**< The module to load */
|
||||
MXS_CONFIG_PARAMETER parameters; /**< The filter parameters */
|
||||
MXS_FILTER* filter; /**< The runtime filter */
|
||||
MXS_FILTER_OBJECT* obj; /**< The "MODULE_OBJECT" for the filter */
|
||||
mutable std::mutex lock;
|
||||
};
|
||||
|
||||
typedef std::shared_ptr<FilterDef> SFilterDef;
|
||||
|
Loading…
x
Reference in New Issue
Block a user