diff --git a/src/core/manager.c b/src/core/manager.c index 3935ed58..1ccca08e 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -401,6 +401,22 @@ static int manager_loop(enum neu_event_io_type type, int fd, void *usr_data) reply(manager, header, &e); break; } + case NEU_REQ_DEL_TEMPLATE_GROUP: { + neu_req_del_template_group_t *cmd = + (neu_req_del_template_group_t *) &header[1]; + neu_resp_error_t e = { 0 }; + + e.error = neu_manager_del_template_group(manager, cmd); + + if (e.error == NEU_ERR_SUCCESS) { + manager_storage_del_template_group(cmd->tmpl, cmd->group); + } + + neu_msg_exchange(header); + header->type = NEU_RESP_ERROR; + reply(manager, header, &e); + break; + } case NEU_REQ_UPDATE_TEMPLATE_GROUP: { neu_req_update_template_group_t *cmd = (neu_req_update_template_group_t *) &header[1]; diff --git a/src/core/manager_internal.c b/src/core/manager_internal.c index 23e541bc..5f903eaa 100644 --- a/src/core/manager_internal.c +++ b/src/core/manager_internal.c @@ -253,6 +253,18 @@ int neu_manager_update_template_group(neu_manager_t * manager, return neu_template_update_group(tmpl, req->group, req->interval); } +int neu_manager_del_template_group(neu_manager_t * manager, + neu_req_del_template_group_t *req) +{ + neu_template_t *tmpl = + neu_template_manager_find(manager->template_manager, req->tmpl); + if (NULL == tmpl) { + return NEU_ERR_TEMPLATE_NOT_FOUND; + } + + return neu_template_del_group(tmpl, req->group); +} + int neu_manager_add_template_tags(neu_manager_t * manager, neu_req_add_template_tag_t *req, uint16_t * index_p) diff --git a/src/core/manager_internal.h b/src/core/manager_internal.h index eff04593..7689325d 100644 --- a/src/core/manager_internal.h +++ b/src/core/manager_internal.h @@ -69,6 +69,8 @@ int neu_manager_add_template_group(neu_manager_t * manager, neu_req_add_template_group_t *req); int neu_manager_update_template_group(neu_manager_t * manager, neu_req_update_template_group_t *req); +int neu_manager_del_template_group(neu_manager_t * manager, + neu_req_del_template_group_t *req); int neu_manager_add_template_tags(neu_manager_t * manager, neu_req_add_template_tag_t *req, uint16_t * index_p);