diff --git a/include/neu_plugin.h b/include/neu_plugin.h index a617c7d7..fd31f30e 100644 --- a/include/neu_plugin.h +++ b/include/neu_plugin.h @@ -90,6 +90,9 @@ intptr_t neu_system_update_group_config(neu_plugin_t * plugin, neu_taggrp_config_t *neu_system_find_group_config(neu_plugin_t *plugin, neu_node_id_t node_id, const char * name); +neu_taggrp_config_t *neu_system_ref_group_config(neu_plugin_t *plugin, + neu_node_id_t node_id, + const char * name); // uninit vector vector_t neu_system_get_group_configs(neu_plugin_t *plugin, neu_node_id_t node_id); diff --git a/src/base/neu_plugin_common.c b/src/base/neu_plugin_common.c index 3ddb39bf..151ede47 100644 --- a/src/base/neu_plugin_common.c +++ b/src/base/neu_plugin_common.c @@ -406,6 +406,28 @@ neu_taggrp_config_t *neu_system_find_group_config(neu_plugin_t *plugin, return find_config; } +neu_taggrp_config_t *neu_system_ref_group_config(neu_plugin_t *plugin, + neu_node_id_t node_id, + const char * name) +{ + vector_t grp_configs = neu_system_get_group_configs(plugin, node_id); + neu_taggrp_config_t *find_config = NULL; + + VECTOR_FOR_EACH(&grp_configs, iter) + { + neu_taggrp_config_t *config = + *(neu_taggrp_config_t **) iterator_get(&iter); + if (strncmp(neu_taggrp_cfg_get_name(config), name, strlen(name)) == 0) { + find_config = config; + break; + } + } + + vector_uninit(&grp_configs); + + return neu_taggrp_cfg_ref(find_config); +} + int neu_plugin_tag_count_by_attribute(neu_taggrp_config_t *grp_config, neu_datatag_table_t *tag_table, neu_attribute_e attribute) @@ -498,4 +520,4 @@ vector_t *neu_system_get_sub_group_configs(neu_plugin_t *plugin, neu_reqresp_sub_grp_configs_t, { sub_group_configs = resp->sub_grp_configs; }) return sub_group_configs; -} \ No newline at end of file +}