mirror of
https://github.com/emqx/neuron.git
synced 2026-10-26 03:40:01 +08:00
Update neu_persister_load_datatags with group_config_name parameter
This commit is contained in:
+26
-18
@@ -766,44 +766,52 @@ int neu_persister_store_datatags(neu_persister_t *persister,
|
||||
|
||||
int neu_persister_load_datatags(neu_persister_t *persister,
|
||||
const char * adapter_name,
|
||||
const char * group_config_name,
|
||||
vector_t ** datatag_infos)
|
||||
{
|
||||
char *datatags = NULL;
|
||||
char datatag_file[128] = { 0 };
|
||||
char path[PATH_MAX_SIZE] = { 0 };
|
||||
|
||||
int rv = snprintf(datatag_file, 128, "%s/%s/datatags.json",
|
||||
persister->persist_dir, adapter_name);
|
||||
if (sizeof(datatag_file) == rv) {
|
||||
log_error("datatg_file exceeds maximum value");
|
||||
return -1;
|
||||
int n = persister_group_config_dir(path, sizeof(path), persister,
|
||||
adapter_name, group_config_name);
|
||||
if (sizeof(path) == n) {
|
||||
log_error("path too long: %s", path);
|
||||
return NEU_ERR_FAILURE;
|
||||
}
|
||||
|
||||
rv = read_file_string(datatag_file, &datatags);
|
||||
n = path_cat(path, n, sizeof(path), "datatags.json");
|
||||
if (sizeof(path) == n) {
|
||||
log_error("path too long: %s", path);
|
||||
return NEU_ERR_FAILURE;
|
||||
}
|
||||
|
||||
char *json_str = NULL;
|
||||
int rv = read_file_string(path, &json_str);
|
||||
if (rv != 0) {
|
||||
return rv;
|
||||
}
|
||||
|
||||
neu_json_datatag_req_t *datatag_req = NULL;
|
||||
rv = neu_json_decode_datatag_req(datatags, &datatag_req);
|
||||
rv = neu_json_decode_datatag_req(json_str, &datatag_req);
|
||||
free(json_str);
|
||||
if (rv != 0) {
|
||||
free(datatags);
|
||||
return rv;
|
||||
}
|
||||
|
||||
vector_t *vec = vector_new_move_from_buf(
|
||||
datatag_req->tags, datatag_req->n_tag, datatag_req->n_tag,
|
||||
sizeof(neu_persist_datatag_info_t));
|
||||
if (vec == NULL) {
|
||||
free(datatags);
|
||||
neu_json_decode_datatag_req_free(datatag_req);
|
||||
return -1;
|
||||
|
||||
if (NULL != vec) {
|
||||
*datatag_infos = vec;
|
||||
datatag_req->n_tag = 0;
|
||||
datatag_req->tags = NULL;
|
||||
} else {
|
||||
rv = NEU_ERR_ENOMEM;
|
||||
}
|
||||
|
||||
*datatag_infos = vec;
|
||||
neu_json_decode_datatag_req_free(datatag_req);
|
||||
|
||||
free(datatags);
|
||||
free(datatag_req);
|
||||
return 0;
|
||||
return rv;
|
||||
}
|
||||
|
||||
int neu_persister_store_subscriptions(neu_persister_t *persister,
|
||||
|
||||
@@ -172,12 +172,14 @@ int neu_persister_store_datatags(neu_persister_t *persister,
|
||||
* Load adapter datatag infos.
|
||||
* @param persister persiter object.
|
||||
* @param adapter_name name of the adapter who owns the datatags.
|
||||
* @param group_config_name name of the group config.
|
||||
* @param[out] datatag_infos used to return pointer to heap allocated
|
||||
* vector of neu_persist_datatag_info_t.
|
||||
* @return 0 on success, non-zero otherwise
|
||||
*/
|
||||
int neu_persister_load_datatags(neu_persister_t *persister,
|
||||
const char * adapter_name,
|
||||
const char * group_config_name,
|
||||
vector_t ** datatag_infos);
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user