mirror of
https://github.com/emqx/neuron.git
synced 2026-10-25 19:31:41 +08:00
refactor: manager internal template tags management
This commit is contained in:
+18
-28
@@ -233,17 +233,13 @@ int neu_manager_add_template_tags(neu_manager_t * manager,
|
||||
neu_req_add_template_tag_t *req,
|
||||
uint16_t * index_p)
|
||||
{
|
||||
int ret = 0;
|
||||
int ret = 0;
|
||||
neu_group_t *grp = NULL;
|
||||
|
||||
neu_template_t *tmpl =
|
||||
neu_template_manager_find(manager->template_manager, req->tmpl);
|
||||
if (NULL == tmpl) {
|
||||
return NEU_ERR_TEMPLATE_NOT_FOUND;
|
||||
}
|
||||
|
||||
neu_group_t *grp = neu_template_get_group(tmpl, req->group);
|
||||
if (NULL == grp) {
|
||||
return NEU_ERR_GROUP_NOT_EXIST;
|
||||
ret = neu_template_manager_find_group(manager->template_manager, req->tmpl,
|
||||
req->group, &grp);
|
||||
if (0 != ret) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
int i = 0;
|
||||
@@ -264,17 +260,13 @@ int neu_manager_update_template_tags(neu_manager_t * manager,
|
||||
neu_req_update_template_tag_t *req,
|
||||
uint16_t * index_p)
|
||||
{
|
||||
int ret = 0;
|
||||
int ret = 0;
|
||||
neu_group_t *grp = NULL;
|
||||
|
||||
neu_template_t *tmpl =
|
||||
neu_template_manager_find(manager->template_manager, req->tmpl);
|
||||
if (NULL == tmpl) {
|
||||
return NEU_ERR_TEMPLATE_NOT_FOUND;
|
||||
}
|
||||
|
||||
neu_group_t *grp = neu_template_get_group(tmpl, req->group);
|
||||
if (NULL == grp) {
|
||||
return NEU_ERR_GROUP_NOT_EXIST;
|
||||
ret = neu_template_manager_find_group(manager->template_manager, req->tmpl,
|
||||
req->group, &grp);
|
||||
if (0 != ret) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
int i = 0;
|
||||
@@ -294,15 +286,13 @@ int neu_manager_update_template_tags(neu_manager_t * manager,
|
||||
int neu_manager_del_template_tags(neu_manager_t * manager,
|
||||
neu_req_del_template_tag_t *req)
|
||||
{
|
||||
neu_template_t *tmpl =
|
||||
neu_template_manager_find(manager->template_manager, req->tmpl);
|
||||
if (NULL == tmpl) {
|
||||
return NEU_ERR_TEMPLATE_NOT_FOUND;
|
||||
}
|
||||
int ret = 0;
|
||||
neu_group_t *grp = NULL;
|
||||
|
||||
neu_group_t *grp = neu_template_get_group(tmpl, req->group);
|
||||
if (NULL == grp) {
|
||||
return NEU_ERR_GROUP_NOT_EXIST;
|
||||
ret = neu_template_manager_find_group(manager->template_manager, req->tmpl,
|
||||
req->group, &grp);
|
||||
if (0 != ret) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
int i = 0;
|
||||
|
||||
@@ -103,6 +103,27 @@ neu_template_t *neu_template_manager_find(const neu_template_manager_t *mgr,
|
||||
return ent ? ent->tmpl : NULL;
|
||||
}
|
||||
|
||||
int neu_template_manager_find_group(const neu_template_manager_t *mgr,
|
||||
const char *name, const char *group_name,
|
||||
neu_group_t **group_p)
|
||||
{
|
||||
neu_template_t *tmpl = neu_template_manager_find(mgr, name);
|
||||
if (NULL == tmpl) {
|
||||
return NEU_ERR_TEMPLATE_NOT_FOUND;
|
||||
}
|
||||
|
||||
neu_group_t *grp = neu_template_get_group(tmpl, group_name);
|
||||
if (NULL == grp) {
|
||||
return NEU_ERR_GROUP_NOT_EXIST;
|
||||
}
|
||||
|
||||
if (group_p) {
|
||||
*group_p = grp;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int neu_template_manager_for_each(neu_template_manager_t *mgr,
|
||||
int (*cb)(neu_template_t *tmpl, void *data),
|
||||
void *data)
|
||||
|
||||
@@ -39,6 +39,12 @@ int neu_template_manager_del(neu_template_manager_t *mgr, const char *name);
|
||||
neu_template_t *neu_template_manager_find(const neu_template_manager_t *mgr,
|
||||
const char * name);
|
||||
|
||||
// NOTE: ownership of the return group belongs to the manager.
|
||||
// user must not alter the name of the return group.
|
||||
int neu_template_manager_find_group(const neu_template_manager_t *mgr,
|
||||
const char *name, const char *group_name,
|
||||
neu_group_t **group_p);
|
||||
|
||||
// Iterate through templates and apply `cb` each.
|
||||
// NOTE: `cb` must not alter the name or plugin of the template.
|
||||
// `cb` must not delete the template.
|
||||
|
||||
Reference in New Issue
Block a user