From: Jaeyun Date: Thu, 8 Sep 2022 06:27:39 +0000 (+0900) Subject: [CodeClean] separate meta X-Git-Tag: accepted/tizen/unified/20220919.012623~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=56b882ea8c85c9c326eb28883ec066c5986a0f07;p=platform%2Fupstream%2Fnnstreamer-edge.git [CodeClean] separate meta Internal util functions to handle metadata. Signed-off-by: Jaeyun --- diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index de9c634..8920f47 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,7 +1,7 @@ # NNStreamer-Edge library SET(NNS_EDGE_LIB_NAME nnstreamer-edge) SET(NNS_EDGE_SRCS - ${NNS_EDGE_SRC_DIR}/nnstreamer-edge-common.c + ${NNS_EDGE_SRC_DIR}/nnstreamer-edge-metadata.c ${NNS_EDGE_SRC_DIR}/nnstreamer-edge-data.c ${NNS_EDGE_SRC_DIR}/nnstreamer-edge-event.c ${NNS_EDGE_SRC_DIR}/nnstreamer-edge-internal.c diff --git a/src/libnnstreamer-edge/nnstreamer-edge-aitt.c b/src/libnnstreamer-edge/nnstreamer-edge-aitt.c index 04aac49..5165470 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-aitt.c +++ b/src/libnnstreamer-edge/nnstreamer-edge-aitt.c @@ -16,7 +16,6 @@ #include "nnstreamer-edge-data.h" #include "nnstreamer-edge-event.h" -#include "nnstreamer-edge-common.h" #include "nnstreamer-edge-internal.h" #include "nnstreamer-edge-util.h" #include "nnstreamer-edge-log.h" diff --git a/src/libnnstreamer-edge/nnstreamer-edge-common.c b/src/libnnstreamer-edge/nnstreamer-edge-common.c deleted file mode 100644 index 840582b..0000000 --- a/src/libnnstreamer-edge/nnstreamer-edge-common.c +++ /dev/null @@ -1,290 +0,0 @@ -/* SPDX-License-Identifier: Apache-2.0 */ -/** - * Copyright (C) 2022 Samsung Electronics Co., Ltd. All Rights Reserved. - * - * @file nnstreamer-edge-common.c - * @date 6 April 2022 - * @brief Common util functions for nnstreamer edge. - * @see https://github.com/nnstreamer/nnstreamer - * @author Gichan Jang - * @bug No known bugs except for NYI items - */ - -#include "nnstreamer-edge-common.h" -#include "nnstreamer-edge-data.h" -#include "nnstreamer-edge-log.h" -#include "nnstreamer-edge-util.h" - -/** - * @brief Internal function to find node in the list. - */ -static nns_edge_metadata_node_s * -nns_edge_metadata_find (nns_edge_metadata_s * meta, const char *key) -{ - nns_edge_metadata_node_s *node; - - if (!meta) - return NULL; - - if (!STR_IS_VALID (key)) - return NULL; - - node = meta->list; - while (node) { - if (strcasecmp (key, node->key) == 0) - return node; - - node = node->next; - } - - return NULL; -} - -/** - * @brief Internal function to initialize metadata structure. - */ -int -nns_edge_metadata_init (nns_edge_metadata_s * meta) -{ - if (!meta) - return NNS_EDGE_ERROR_INVALID_PARAMETER; - - memset (meta, 0, sizeof (nns_edge_metadata_s)); - return NNS_EDGE_ERROR_NONE; -} - -/** - * @brief Internal function to free the list and items in metadata structure. - */ -int -nns_edge_metadata_free (nns_edge_metadata_s * meta) -{ - nns_edge_metadata_node_s *node, *tmp; - - if (!meta) - return NNS_EDGE_ERROR_INVALID_PARAMETER; - - node = meta->list; - meta->list_len = 0; - meta->list = NULL; - - while (node) { - tmp = node->next; - - SAFE_FREE (node->key); - SAFE_FREE (node->value); - SAFE_FREE (node); - - node = tmp; - } - - return NNS_EDGE_ERROR_NONE; -} - -/** - * @brief Internal function to set the metadata. - */ -int -nns_edge_metadata_set (nns_edge_metadata_s * meta, - const char *key, const char *value) -{ - nns_edge_metadata_node_s *node; - - if (!meta) - return NNS_EDGE_ERROR_INVALID_PARAMETER; - - if (!STR_IS_VALID (key)) - return NNS_EDGE_ERROR_INVALID_PARAMETER; - - if (!STR_IS_VALID (value)) - return NNS_EDGE_ERROR_INVALID_PARAMETER; - - /* Replace old value if key exists in the list. */ - node = nns_edge_metadata_find (meta, key); - if (node) { - char *val = nns_edge_strdup (value); - - if (!val) - return NNS_EDGE_ERROR_OUT_OF_MEMORY; - - SAFE_FREE (node->value); - node->value = val; - return NNS_EDGE_ERROR_NONE; - } - - node = calloc (1, sizeof (nns_edge_metadata_node_s)); - if (!node) - return NNS_EDGE_ERROR_OUT_OF_MEMORY; - - node->key = nns_edge_strdup (key); - node->value = nns_edge_strdup (value); - - if (!node->key || !node->value) { - SAFE_FREE (node->key); - SAFE_FREE (node->value); - SAFE_FREE (node); - return NNS_EDGE_ERROR_OUT_OF_MEMORY; - } - - /* Prepend new node to the start of the list. */ - meta->list_len++; - node->next = meta->list; - meta->list = node; - - return NNS_EDGE_ERROR_NONE; -} - -/** - * @brief Internal function to get the metadata in the list. Caller should release the returned value using free(). - */ -int -nns_edge_metadata_get (nns_edge_metadata_s * meta, - const char *key, char **value) -{ - nns_edge_metadata_node_s *node; - - if (!value) - return NNS_EDGE_ERROR_INVALID_PARAMETER; - - node = nns_edge_metadata_find (meta, key); - if (node) { - *value = nns_edge_strdup (node->value); - return (*value) ? NNS_EDGE_ERROR_NONE : NNS_EDGE_ERROR_OUT_OF_MEMORY; - } - - return NNS_EDGE_ERROR_INVALID_PARAMETER; -} - -/** - * @brief Internal function to copy the metadata. - */ -int -nns_edge_metadata_copy (nns_edge_metadata_s * dest, nns_edge_metadata_s * src) -{ - nns_edge_metadata_s tmp; - nns_edge_metadata_node_s *node; - int ret; - - if (!dest || !src) - return NNS_EDGE_ERROR_INVALID_PARAMETER; - - nns_edge_metadata_init (&tmp); - - node = src->list; - while (node) { - ret = nns_edge_metadata_set (&tmp, node->key, node->value); - if (ret != NNS_EDGE_ERROR_NONE) { - nns_edge_metadata_free (&tmp); - return ret; - } - - node = node->next; - } - - /* Replace dest when new metadata is successfully copied. */ - nns_edge_metadata_free (dest); - *dest = tmp; - - return NNS_EDGE_ERROR_NONE; -} - -/** - * @brief Internal function to serialize the metadata. Caller should release the returned value using free(). - */ -int -nns_edge_metadata_serialize (nns_edge_metadata_s * meta, - void **data, size_t *data_len) -{ - nns_edge_metadata_node_s *node; - char *serialized, *ptr; - size_t total, len; - - if (!meta) - return NNS_EDGE_ERROR_INVALID_PARAMETER; - - if (!data || !data_len) - return NNS_EDGE_ERROR_INVALID_PARAMETER; - - *data = NULL; - *data_len = 0U; - - if (meta->list_len == 0) - return NNS_EDGE_ERROR_NONE; - - total = len = sizeof (unsigned int); - - node = meta->list; - while (node) { - total += (strlen (node->key) + strlen (node->value) + 2); - node = node->next; - } - - serialized = ptr = (char *) malloc (total); - if (!serialized) - return NNS_EDGE_ERROR_OUT_OF_MEMORY; - - /* length + list of key-value pair */ - ((unsigned int *) serialized)[0] = meta->list_len; - ptr += len; - - node = meta->list; - while (node) { - len = strlen (node->key); - memcpy (ptr, node->key, len); - ptr[len] = '\0'; - ptr += (len + 1); - - len = strlen (node->value); - memcpy (ptr, node->value, len); - ptr[len] = '\0'; - ptr += (len + 1); - - node = node->next; - } - - *data = serialized; - *data_len = total; - - return NNS_EDGE_ERROR_NONE; -} - -/** - * @brief Internal function to deserialize memory into metadata. - */ -int -nns_edge_metadata_deserialize (nns_edge_metadata_s * meta, - void *data, size_t data_len) -{ - char *key, *value; - size_t cur; - unsigned int total; - int ret; - - if (!meta) - return NNS_EDGE_ERROR_INVALID_PARAMETER; - - if (!data || data_len <= 0) - return NNS_EDGE_ERROR_INVALID_PARAMETER; - - nns_edge_metadata_free (meta); - - /* length + list of key-value pair */ - total = ((unsigned int *) data)[0]; - - cur = sizeof (unsigned int); - while (cur < data_len || meta->list_len < total) { - key = (char *) data + cur; - cur += (strlen (key) + 1); - - value = (char *) data + cur; - cur += (strlen (value) + 1); - - ret = nns_edge_metadata_set (meta, key, value); - if (ret != NNS_EDGE_ERROR_NONE) { - nns_edge_metadata_free (meta); - return ret; - } - } - - return NNS_EDGE_ERROR_NONE; -} diff --git a/src/libnnstreamer-edge/nnstreamer-edge-common.h b/src/libnnstreamer-edge/nnstreamer-edge-common.h deleted file mode 100644 index d648386..0000000 --- a/src/libnnstreamer-edge/nnstreamer-edge-common.h +++ /dev/null @@ -1,63 +0,0 @@ -/* SPDX-License-Identifier: Apache-2.0 */ -/** - * Copyright (C) 2022 Samsung Electronics Co., Ltd. All Rights Reserved. - * - * @file nnstreamer-edge-common.h - * @date 6 April 2022 - * @brief Common util functions for nnstreamer edge. - * @see https://github.com/nnstreamer/nnstreamer - * @author Gichan Jang - * @bug No known bugs except for NYI items - * @note This file is internal header for nnstreamer edge utils. DO NOT export this file. - * @todo Rename this to nnstreamer-edge-meta after separating util functions. - */ - -#ifndef __NNSTREAMER_EDGE_COMMON_H__ -#define __NNSTREAMER_EDGE_COMMON_H__ - -#include "nnstreamer-edge.h" -#include "nnstreamer-edge-internal.h" - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/** - * @brief Internal function to initialize metadata structure. - */ -int nns_edge_metadata_init (nns_edge_metadata_s *meta); - -/** - * @brief Internal function to free the list and items in metadata structure. - */ -int nns_edge_metadata_free (nns_edge_metadata_s *meta); - -/** - * @brief Internal function to set the metadata. - */ -int nns_edge_metadata_set (nns_edge_metadata_s *meta, const char *key, const char *value); - -/** - * @brief Internal function to get the metadata in the list. Caller should release the returned value using free(). - */ -int nns_edge_metadata_get (nns_edge_metadata_s *meta, const char *key, char **value); - -/** - * @brief Internal function to copy the metadata. - */ -int nns_edge_metadata_copy (nns_edge_metadata_s *dest, nns_edge_metadata_s *src); - -/** - * @brief Internal function to serialize the metadata. Caller should release the returned value using free(). - */ -int nns_edge_metadata_serialize (nns_edge_metadata_s *meta, void **data, size_t *data_len); - -/** - * @brief Internal function to deserialize memory into metadata. - */ -int nns_edge_metadata_deserialize (nns_edge_metadata_s *meta, void *data, size_t data_len); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ -#endif /* __NNSTREAMER_EDGE_COMMON_H__ */ diff --git a/src/libnnstreamer-edge/nnstreamer-edge-data.c b/src/libnnstreamer-edge/nnstreamer-edge-data.c index 66e5113..fe6da05 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-data.c +++ b/src/libnnstreamer-edge/nnstreamer-edge-data.c @@ -12,7 +12,6 @@ #include "nnstreamer-edge-data.h" #include "nnstreamer-edge-log.h" -#include "nnstreamer-edge-common.h" #include "nnstreamer-edge-util.h" /** @@ -36,7 +35,7 @@ nns_edge_data_create (nns_edge_data_h * data_h) nns_edge_lock_init (ed); ed->magic = NNS_EDGE_MAGIC; - nns_edge_metadata_init (&ed->metadata); + nns_edge_metadata_create (&ed->metadata); *data_h = ed; return NNS_EDGE_ERROR_NONE; @@ -72,7 +71,7 @@ nns_edge_data_destroy (nns_edge_data_h data_h) ed->data[i].destroy_cb (ed->data[i].data); } - nns_edge_metadata_free (&ed->metadata); + nns_edge_metadata_destroy (ed->metadata); nns_edge_unlock (ed); nns_edge_lock_destroy (ed); @@ -161,7 +160,7 @@ nns_edge_data_copy (nns_edge_data_h data_h, nns_edge_data_h * new_data_h) copied->data[i].destroy_cb = nns_edge_free; } - ret = nns_edge_metadata_copy (&copied->metadata, &ed->metadata); + ret = nns_edge_metadata_copy (copied->metadata, ed->metadata); done: if (ret != NNS_EDGE_ERROR_NONE) { @@ -322,7 +321,7 @@ nns_edge_data_set_info (nns_edge_data_h data_h, const char *key, return NNS_EDGE_ERROR_INVALID_PARAMETER; } - ret = nns_edge_metadata_set (&ed->metadata, key, value); + ret = nns_edge_metadata_set (ed->metadata, key, value); nns_edge_unlock (ed); return ret; @@ -361,7 +360,7 @@ nns_edge_data_get_info (nns_edge_data_h data_h, const char *key, char **value) return NNS_EDGE_ERROR_INVALID_PARAMETER; } - ret = nns_edge_metadata_get (&ed->metadata, key, value); + ret = nns_edge_metadata_get (ed->metadata, key, value); nns_edge_unlock (ed); return ret; @@ -391,7 +390,7 @@ nns_edge_data_serialize_meta (nns_edge_data_h data_h, void **data, return NNS_EDGE_ERROR_INVALID_PARAMETER; } - ret = nns_edge_metadata_serialize (&ed->metadata, data, data_len); + ret = nns_edge_metadata_serialize (ed->metadata, data, data_len); nns_edge_unlock (ed); return ret; @@ -421,7 +420,7 @@ nns_edge_data_deserialize_meta (nns_edge_data_h data_h, void *data, return NNS_EDGE_ERROR_INVALID_PARAMETER; } - ret = nns_edge_metadata_deserialize (&ed->metadata, data, data_len); + ret = nns_edge_metadata_deserialize (ed->metadata, data, data_len); nns_edge_unlock (ed); return ret; @@ -464,7 +463,7 @@ nns_edge_data_serialize (nns_edge_data_h data_h, void **data, size_t *len) data_len += ed->data[n].data_len; } - ret = nns_edge_metadata_serialize (&ed->metadata, &meta_serialized, + ret = nns_edge_metadata_serialize (ed->metadata, &meta_serialized, &edata_header.meta_len); if (NNS_EDGE_ERROR_NONE != ret) { goto done; @@ -543,7 +542,7 @@ nns_edge_data_deserialize (nns_edge_data_h data_h, void *data) ptr += ed->data[n].data_len; } - ret = nns_edge_metadata_deserialize (&ed->metadata, ptr, meta_len); + ret = nns_edge_metadata_deserialize (ed->metadata, ptr, meta_len); nns_edge_unlock (ed); return ret; diff --git a/src/libnnstreamer-edge/nnstreamer-edge-data.h b/src/libnnstreamer-edge/nnstreamer-edge-data.h index f87b6bc..729ff19 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-data.h +++ b/src/libnnstreamer-edge/nnstreamer-edge-data.h @@ -16,6 +16,7 @@ #include "nnstreamer-edge.h" #include "nnstreamer-edge-internal.h" +#include "nnstreamer-edge-metadata.h" #ifdef __cplusplus extern "C" { @@ -29,7 +30,7 @@ typedef struct { pthread_mutex_t lock; unsigned int num; nns_edge_raw_data_s data[NNS_EDGE_DATA_LIMIT]; - nns_edge_metadata_s metadata; + nns_edge_metadata_h metadata; } nns_edge_data_s; /** diff --git a/src/libnnstreamer-edge/nnstreamer-edge-internal.c b/src/libnnstreamer-edge/nnstreamer-edge-internal.c index 4d763c8..6b28e37 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-internal.c +++ b/src/libnnstreamer-edge/nnstreamer-edge-internal.c @@ -17,7 +17,6 @@ #include "nnstreamer-edge-data.h" #include "nnstreamer-edge-event.h" #include "nnstreamer-edge-log.h" -#include "nnstreamer-edge-common.h" #include "nnstreamer-edge-util.h" #include "nnstreamer-edge-internal.h" @@ -1248,9 +1247,9 @@ nns_edge_create_handle (const char *id, nns_edge_connect_type_e connect_type, eh->node_type = node_type; eh->broker_h = NULL; eh->connections = NULL; - nns_edge_metadata_init (&eh->meta); eh->listening = false; eh->listener_fd = -1; + nns_edge_metadata_create (&eh->metadata); nns_edge_queue_create (&eh->send_queue); *edge_h = eh; @@ -1411,7 +1410,8 @@ nns_edge_release_handle (nns_edge_h edge_h) _nns_edge_remove_all_connection (eh); - nns_edge_metadata_free (&eh->meta); + nns_edge_metadata_destroy (eh->metadata); + eh->metadata = NULL; SAFE_FREE (eh->id); SAFE_FREE (eh->topic); SAFE_FREE (eh->host); @@ -1747,7 +1747,7 @@ nns_edge_set_info (nns_edge_h edge_h, const char *key, const char *value) nns_edge_loge ("Cannot update %s.", key); ret = NNS_EDGE_ERROR_INVALID_PARAMETER; } else { - ret = nns_edge_metadata_set (&eh->meta, key, value); + ret = nns_edge_metadata_set (eh->metadata, key, value); } nns_edge_unlock (eh); @@ -1811,7 +1811,7 @@ nns_edge_get_info (nns_edge_h edge_h, const char *key, char **value) *value = nns_edge_strdup_printf ("%lld", (long long) eh->client_id); } } else { - ret = nns_edge_metadata_get (&eh->meta, key, value); + ret = nns_edge_metadata_get (eh->metadata, key, value); } nns_edge_unlock (eh); diff --git a/src/libnnstreamer-edge/nnstreamer-edge-internal.h b/src/libnnstreamer-edge/nnstreamer-edge-internal.h index 4641a04..9e0b01b 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-internal.h +++ b/src/libnnstreamer-edge/nnstreamer-edge-internal.h @@ -19,6 +19,7 @@ extern "C" { #endif /* __cplusplus */ #include "nnstreamer-edge.h" +#include "nnstreamer-edge-metadata.h" #include "nnstreamer-edge-queue.h" typedef void *nns_edge_broker_h; @@ -32,28 +33,6 @@ typedef struct { nns_edge_data_destroy_cb destroy_cb; } nns_edge_raw_data_s; -/** - * @brief Internal data structure for metadata. - */ -typedef struct _nns_edge_metadata_node_s nns_edge_metadata_node_s; - -/** - * @brief Internal data structure for metadata. - */ -struct _nns_edge_metadata_node_s { - char *key; - char *value; - nns_edge_metadata_node_s *next; -}; - -/** - * @brief Internal data structure to handle metadata. This struct should be managed in the handle. - */ -typedef struct { - unsigned int list_len; - nns_edge_metadata_node_s *list; -} nns_edge_metadata_s; - /** * @brief Internal data structure for edge event. */ @@ -77,7 +56,7 @@ typedef struct { char *dest_host; /**< destination IP address (broker or target device) */ int dest_port; /**< destination port number (broker or target device) */ nns_edge_node_type_e node_type; - nns_edge_metadata_s meta; + nns_edge_metadata_h metadata; /* Edge event callback and user data */ nns_edge_event_cb event_cb; diff --git a/src/libnnstreamer-edge/nnstreamer-edge-metadata.c b/src/libnnstreamer-edge/nnstreamer-edge-metadata.c new file mode 100644 index 0000000..9b53e43 --- /dev/null +++ b/src/libnnstreamer-edge/nnstreamer-edge-metadata.c @@ -0,0 +1,368 @@ +/* SPDX-License-Identifier: Apache-2.0 */ +/** + * Copyright (C) 2022 Samsung Electronics Co., Ltd. All Rights Reserved. + * + * @file nnstreamer-edge-metadata.c + * @date 6 April 2022 + * @brief Util functions for metadata. + * @see https://github.com/nnstreamer/nnstreamer + * @author Gichan Jang + * @bug No known bugs except for NYI items + */ + +#include "nnstreamer-edge-metadata.h" +#include "nnstreamer-edge-util.h" + +/** + * @brief Internal data structure for metadata. + */ +typedef struct _nns_edge_metadata_node_s nns_edge_metadata_node_s; + +/** + * @brief Internal data structure for metadata. + */ +struct _nns_edge_metadata_node_s +{ + char *key; + char *value; + nns_edge_metadata_node_s *next; +}; + +/** + * @brief Internal data structure to handle metadata. This struct should be managed in the handle. + */ +typedef struct +{ + unsigned int list_len; + nns_edge_metadata_node_s *list; +} nns_edge_metadata_s; + +/** + * @brief Internal function to find node in the list. + */ +static nns_edge_metadata_node_s * +nns_edge_metadata_find (nns_edge_metadata_s * meta, const char *key) +{ + nns_edge_metadata_node_s *node; + + if (!meta) + return NULL; + + if (!STR_IS_VALID (key)) + return NULL; + + node = meta->list; + while (node) { + if (strcasecmp (key, node->key) == 0) + return node; + + node = node->next; + } + + return NULL; +} + +/** + * @brief Internal function to initialize metadata structure. + */ +static int +nns_edge_metadata_init (nns_edge_metadata_s * meta) +{ + if (!meta) + return NNS_EDGE_ERROR_INVALID_PARAMETER; + + memset (meta, 0, sizeof (nns_edge_metadata_s)); + return NNS_EDGE_ERROR_NONE; +} + +/** + * @brief Internal function to free the list and items in metadata structure. + */ +static int +nns_edge_metadata_free (nns_edge_metadata_s * meta) +{ + nns_edge_metadata_node_s *node, *tmp; + + if (!meta) + return NNS_EDGE_ERROR_INVALID_PARAMETER; + + node = meta->list; + meta->list_len = 0; + meta->list = NULL; + + while (node) { + tmp = node->next; + + SAFE_FREE (node->key); + SAFE_FREE (node->value); + SAFE_FREE (node); + + node = tmp; + } + + return NNS_EDGE_ERROR_NONE; +} + +/** + * @brief Internal function to create metadata. + */ +int +nns_edge_metadata_create (nns_edge_metadata_h * metadata_h) +{ + nns_edge_metadata_s *meta; + + if (!metadata_h) + return NNS_EDGE_ERROR_INVALID_PARAMETER; + + meta = calloc (1, sizeof (nns_edge_metadata_s)); + if (!meta) + return NNS_EDGE_ERROR_OUT_OF_MEMORY; + + nns_edge_metadata_init (meta); + + *metadata_h = meta; + return NNS_EDGE_ERROR_NONE; +} + +/** + * @brief Internal function to destroy metadata. + */ +int +nns_edge_metadata_destroy (nns_edge_metadata_h metadata_h) +{ + nns_edge_metadata_s *meta; + + meta = (nns_edge_metadata_s *) metadata_h; + + if (!meta) + return NNS_EDGE_ERROR_INVALID_PARAMETER; + + nns_edge_metadata_free (meta); + free (meta); + + return NNS_EDGE_ERROR_NONE; +} + +/** + * @brief Internal function to set the metadata. + */ +int +nns_edge_metadata_set (nns_edge_metadata_h metadata_h, + const char *key, const char *value) +{ + nns_edge_metadata_s *meta; + nns_edge_metadata_node_s *node; + + meta = (nns_edge_metadata_s *) metadata_h; + + if (!meta) + return NNS_EDGE_ERROR_INVALID_PARAMETER; + + if (!STR_IS_VALID (key)) + return NNS_EDGE_ERROR_INVALID_PARAMETER; + + if (!STR_IS_VALID (value)) + return NNS_EDGE_ERROR_INVALID_PARAMETER; + + /* Replace old value if key exists in the list. */ + node = nns_edge_metadata_find (meta, key); + if (node) { + char *val = nns_edge_strdup (value); + + if (!val) + return NNS_EDGE_ERROR_OUT_OF_MEMORY; + + SAFE_FREE (node->value); + node->value = val; + return NNS_EDGE_ERROR_NONE; + } + + node = calloc (1, sizeof (nns_edge_metadata_node_s)); + if (!node) + return NNS_EDGE_ERROR_OUT_OF_MEMORY; + + node->key = nns_edge_strdup (key); + node->value = nns_edge_strdup (value); + + if (!node->key || !node->value) { + SAFE_FREE (node->key); + SAFE_FREE (node->value); + SAFE_FREE (node); + return NNS_EDGE_ERROR_OUT_OF_MEMORY; + } + + /* Prepend new node to the start of the list. */ + meta->list_len++; + node->next = meta->list; + meta->list = node; + + return NNS_EDGE_ERROR_NONE; +} + +/** + * @brief Internal function to get the metadata in the list. Caller should release the returned value using free(). + */ +int +nns_edge_metadata_get (nns_edge_metadata_h metadata_h, + const char *key, char **value) +{ + nns_edge_metadata_s *meta; + nns_edge_metadata_node_s *node; + + meta = (nns_edge_metadata_s *) metadata_h; + + if (!value) + return NNS_EDGE_ERROR_INVALID_PARAMETER; + + node = nns_edge_metadata_find (meta, key); + if (node) { + *value = nns_edge_strdup (node->value); + return (*value) ? NNS_EDGE_ERROR_NONE : NNS_EDGE_ERROR_OUT_OF_MEMORY; + } + + return NNS_EDGE_ERROR_INVALID_PARAMETER; +} + +/** + * @brief Internal function to copy the metadata. + */ +int +nns_edge_metadata_copy (nns_edge_metadata_h dest_h, nns_edge_metadata_h src_h) +{ + nns_edge_metadata_s *dest, *src; + nns_edge_metadata_s tmp; + nns_edge_metadata_node_s *node; + int ret; + + dest = (nns_edge_metadata_s *) dest_h; + src = (nns_edge_metadata_s *) src_h; + + if (!dest || !src) + return NNS_EDGE_ERROR_INVALID_PARAMETER; + + nns_edge_metadata_init (&tmp); + + node = src->list; + while (node) { + ret = nns_edge_metadata_set (&tmp, node->key, node->value); + if (ret != NNS_EDGE_ERROR_NONE) { + nns_edge_metadata_free (&tmp); + return ret; + } + + node = node->next; + } + + /* Replace dest when new metadata is successfully copied. */ + nns_edge_metadata_free (dest); + *dest = tmp; + + return NNS_EDGE_ERROR_NONE; +} + +/** + * @brief Internal function to serialize the metadata. Caller should release the returned value using free(). + */ +int +nns_edge_metadata_serialize (nns_edge_metadata_h metadata_h, + void **data, size_t *data_len) +{ + nns_edge_metadata_s *meta; + nns_edge_metadata_node_s *node; + char *serialized, *ptr; + size_t total, len; + + meta = (nns_edge_metadata_s *) metadata_h; + + if (!meta) + return NNS_EDGE_ERROR_INVALID_PARAMETER; + + if (!data || !data_len) + return NNS_EDGE_ERROR_INVALID_PARAMETER; + + *data = NULL; + *data_len = 0U; + + if (meta->list_len == 0) + return NNS_EDGE_ERROR_NONE; + + total = len = sizeof (unsigned int); + + node = meta->list; + while (node) { + total += (strlen (node->key) + strlen (node->value) + 2); + node = node->next; + } + + serialized = ptr = (char *) malloc (total); + if (!serialized) + return NNS_EDGE_ERROR_OUT_OF_MEMORY; + + /* length + list of key-value pair */ + ((unsigned int *) serialized)[0] = meta->list_len; + ptr += len; + + node = meta->list; + while (node) { + len = strlen (node->key); + memcpy (ptr, node->key, len); + ptr[len] = '\0'; + ptr += (len + 1); + + len = strlen (node->value); + memcpy (ptr, node->value, len); + ptr[len] = '\0'; + ptr += (len + 1); + + node = node->next; + } + + *data = serialized; + *data_len = total; + + return NNS_EDGE_ERROR_NONE; +} + +/** + * @brief Internal function to deserialize memory into metadata. + */ +int +nns_edge_metadata_deserialize (nns_edge_metadata_h metadata_h, + void *data, size_t data_len) +{ + nns_edge_metadata_s *meta; + char *key, *value; + size_t cur; + unsigned int total; + int ret; + + meta = (nns_edge_metadata_s *) metadata_h; + + if (!meta) + return NNS_EDGE_ERROR_INVALID_PARAMETER; + + if (!data || data_len <= 0) + return NNS_EDGE_ERROR_INVALID_PARAMETER; + + nns_edge_metadata_free (meta); + + /* length + list of key-value pair */ + total = ((unsigned int *) data)[0]; + + cur = sizeof (unsigned int); + while (cur < data_len || meta->list_len < total) { + key = (char *) data + cur; + cur += (strlen (key) + 1); + + value = (char *) data + cur; + cur += (strlen (value) + 1); + + ret = nns_edge_metadata_set (meta, key, value); + if (ret != NNS_EDGE_ERROR_NONE) { + nns_edge_metadata_free (meta); + return ret; + } + } + + return NNS_EDGE_ERROR_NONE; +} diff --git a/src/libnnstreamer-edge/nnstreamer-edge-metadata.h b/src/libnnstreamer-edge/nnstreamer-edge-metadata.h new file mode 100644 index 0000000..77d355a --- /dev/null +++ b/src/libnnstreamer-edge/nnstreamer-edge-metadata.h @@ -0,0 +1,63 @@ +/* SPDX-License-Identifier: Apache-2.0 */ +/** + * Copyright (C) 2022 Samsung Electronics Co., Ltd. All Rights Reserved. + * + * @file nnstreamer-edge-metadata.h + * @date 6 April 2022 + * @brief Util functions for metadata. + * @see https://github.com/nnstreamer/nnstreamer + * @author Gichan Jang + * @bug No known bugs except for NYI items + * @note This file is internal header to handle metadata. DO NOT export this file. + */ + +#ifndef __NNSTREAMER_EDGE_METADATA_H__ +#define __NNSTREAMER_EDGE_METADATA_H__ + +#include "nnstreamer-edge.h" + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +typedef void *nns_edge_metadata_h; + +/** + * @brief Internal function to create metadata. + */ +int nns_edge_metadata_create (nns_edge_metadata_h *metadata_h); + +/** + * @brief Internal function to destroy metadata. + */ +int nns_edge_metadata_destroy (nns_edge_metadata_h metadata_h); + +/** + * @brief Internal function to set the metadata. + */ +int nns_edge_metadata_set (nns_edge_metadata_h metadata_h, const char *key, const char *value); + +/** + * @brief Internal function to get the metadata in the list. Caller should release the returned value using free(). + */ +int nns_edge_metadata_get (nns_edge_metadata_h metadata_h, const char *key, char **value); + +/** + * @brief Internal function to copy the metadata. + */ +int nns_edge_metadata_copy (nns_edge_metadata_h dest_h, nns_edge_metadata_h src_h); + +/** + * @brief Internal function to serialize the metadata. Caller should release the returned value using free(). + */ +int nns_edge_metadata_serialize (nns_edge_metadata_h metadata_h, void **data, size_t *data_len); + +/** + * @brief Internal function to deserialize memory into metadata. + */ +int nns_edge_metadata_deserialize (nns_edge_metadata_h metadata_h, void *data, size_t data_len); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ +#endif /* __NNSTREAMER_EDGE_METADATA_H__ */ diff --git a/tests/unittest_nnstreamer-edge-aitt.cc b/tests/unittest_nnstreamer-edge-aitt.cc index 53d67df..7180a8a 100644 --- a/tests/unittest_nnstreamer-edge-aitt.cc +++ b/tests/unittest_nnstreamer-edge-aitt.cc @@ -9,7 +9,6 @@ #include #include "nnstreamer-edge.h" -#include "nnstreamer-edge-common.h" #include "nnstreamer-edge-internal.h" #include "nnstreamer-edge-log.h" #include "nnstreamer-edge-util.h" diff --git a/tests/unittest_nnstreamer-edge.cc b/tests/unittest_nnstreamer-edge.cc index 68f45b9..6476665 100644 --- a/tests/unittest_nnstreamer-edge.cc +++ b/tests/unittest_nnstreamer-edge.cc @@ -11,7 +11,7 @@ #include "nnstreamer-edge.h" #include "nnstreamer-edge-data.h" #include "nnstreamer-edge-event.h" -#include "nnstreamer-edge-common.h" +#include "nnstreamer-edge-metadata.h" #include "nnstreamer-edge-internal.h" #include "nnstreamer-edge-log.h" #include "nnstreamer-edge-util.h" @@ -2727,24 +2727,24 @@ TEST(edgeEvent, parseCapabilityInvalidParam04_n) } /** - * @brief Initialize edge metadata - invalid param. + * @brief Create edge metadata - invalid param. */ -TEST(edgeMeta, initInvalidParam01_n) +TEST(edgeMeta, createInvalidParam01_n) { int ret; - ret = nns_edge_metadata_init (NULL); + ret = nns_edge_metadata_create (NULL); EXPECT_NE (ret, NNS_EDGE_ERROR_NONE); } /** - * @brief Release resources of edge metadata - invalid param. + * @brief Destroy edge metadata - invalid param. */ -TEST(edgeMeta, freeInvalidParam01_n) +TEST(edgeMeta, destroyInvalidParam01_n) { int ret; - ret = nns_edge_metadata_free (NULL); + ret = nns_edge_metadata_destroy (NULL); EXPECT_NE (ret, NNS_EDGE_ERROR_NONE); } @@ -2764,16 +2764,16 @@ TEST(edgeMeta, setInvalidParam01_n) */ TEST(edgeMeta, setInvalidParam02_n) { - nns_edge_metadata_s meta; + nns_edge_metadata_h meta; int ret; - ret = nns_edge_metadata_init (&meta); + ret = nns_edge_metadata_create (&meta); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_set (&meta, NULL, "temp-value"); + ret = nns_edge_metadata_set (meta, NULL, "temp-value"); EXPECT_NE (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_free (&meta); + ret = nns_edge_metadata_destroy (meta); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); } @@ -2782,16 +2782,16 @@ TEST(edgeMeta, setInvalidParam02_n) */ TEST(edgeMeta, setInvalidParam03_n) { - nns_edge_metadata_s meta; + nns_edge_metadata_h meta; int ret; - ret = nns_edge_metadata_init (&meta); + ret = nns_edge_metadata_create (&meta); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_set (&meta, "", "temp-value"); + ret = nns_edge_metadata_set (meta, "", "temp-value"); EXPECT_NE (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_free (&meta); + ret = nns_edge_metadata_destroy (meta); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); } @@ -2800,16 +2800,16 @@ TEST(edgeMeta, setInvalidParam03_n) */ TEST(edgeMeta, setInvalidParam04_n) { - nns_edge_metadata_s meta; + nns_edge_metadata_h meta; int ret; - ret = nns_edge_metadata_init (&meta); + ret = nns_edge_metadata_create (&meta); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_set (&meta, "temp-key", NULL); + ret = nns_edge_metadata_set (meta, "temp-key", NULL); EXPECT_NE (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_free (&meta); + ret = nns_edge_metadata_destroy (meta); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); } @@ -2818,16 +2818,16 @@ TEST(edgeMeta, setInvalidParam04_n) */ TEST(edgeMeta, setInvalidParam05_n) { - nns_edge_metadata_s meta; + nns_edge_metadata_h meta; int ret; - ret = nns_edge_metadata_init (&meta); + ret = nns_edge_metadata_create (&meta); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_set (&meta, "temp-key", ""); + ret = nns_edge_metadata_set (meta, "temp-key", ""); EXPECT_NE (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_free (&meta); + ret = nns_edge_metadata_destroy (meta); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); } @@ -2848,17 +2848,17 @@ TEST(edgeMeta, getInvalidParam01_n) */ TEST(edgeMeta, getInvalidParam02_n) { - nns_edge_metadata_s meta; + nns_edge_metadata_h meta; char *value = NULL; int ret; - ret = nns_edge_metadata_init (&meta); + ret = nns_edge_metadata_create (&meta); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_get (&meta, NULL, &value); + ret = nns_edge_metadata_get (meta, NULL, &value); EXPECT_NE (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_free (&meta); + ret = nns_edge_metadata_destroy (meta); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); } @@ -2867,17 +2867,17 @@ TEST(edgeMeta, getInvalidParam02_n) */ TEST(edgeMeta, getInvalidParam03_n) { - nns_edge_metadata_s meta; + nns_edge_metadata_h meta; char *value = NULL; int ret; - ret = nns_edge_metadata_init (&meta); + ret = nns_edge_metadata_create (&meta); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_get (&meta, "", &value); + ret = nns_edge_metadata_get (meta, "", &value); EXPECT_NE (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_free (&meta); + ret = nns_edge_metadata_destroy (meta); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); } @@ -2886,16 +2886,16 @@ TEST(edgeMeta, getInvalidParam03_n) */ TEST(edgeMeta, getInvalidParam04_n) { - nns_edge_metadata_s meta; + nns_edge_metadata_h meta; int ret; - ret = nns_edge_metadata_init (&meta); + ret = nns_edge_metadata_create (&meta); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_get (&meta, "temp-key", NULL); + ret = nns_edge_metadata_get (meta, "temp-key", NULL); EXPECT_NE (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_free (&meta); + ret = nns_edge_metadata_destroy (meta); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); } @@ -2904,40 +2904,40 @@ TEST(edgeMeta, getInvalidParam04_n) */ TEST(edgeMeta, copy) { - nns_edge_metadata_s src, desc; + nns_edge_metadata_h src, desc; char *value = NULL; int ret; - ret = nns_edge_metadata_init (&src); + ret = nns_edge_metadata_create (&src); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_init (&desc); + ret = nns_edge_metadata_create (&desc); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_set (&src, "temp-key1", "temp-value1"); + ret = nns_edge_metadata_set (src, "temp-key1", "temp-value1"); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_set (&src, "temp-key2", "temp-value2"); + ret = nns_edge_metadata_set (src, "temp-key2", "temp-value2"); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); /* Replace old value */ - ret = nns_edge_metadata_set (&src, "temp-key2", "temp-value2-replaced"); + ret = nns_edge_metadata_set (src, "temp-key2", "temp-value2-replaced"); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_copy (&desc, &src); + ret = nns_edge_metadata_copy (desc, src); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_get (&desc, "temp-key1", &value); + ret = nns_edge_metadata_get (desc, "temp-key1", &value); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); EXPECT_STREQ (value, "temp-value1"); nns_edge_free (value); - ret = nns_edge_metadata_get (&desc, "temp-key2", &value); + ret = nns_edge_metadata_get (desc, "temp-key2", &value); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); EXPECT_STREQ (value, "temp-value2-replaced"); nns_edge_free (value); - ret = nns_edge_metadata_free (&src); + ret = nns_edge_metadata_destroy (src); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_free (&desc); + ret = nns_edge_metadata_destroy (desc); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); } @@ -2946,16 +2946,16 @@ TEST(edgeMeta, copy) */ TEST(edgeMeta, copyInvalidParam01_n) { - nns_edge_metadata_s src; + nns_edge_metadata_h src; int ret; - ret = nns_edge_metadata_init (&src); + ret = nns_edge_metadata_create (&src); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_copy (NULL, &src); + ret = nns_edge_metadata_copy (NULL, src); EXPECT_NE (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_free (&src); + ret = nns_edge_metadata_destroy (src); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); } @@ -2964,16 +2964,16 @@ TEST(edgeMeta, copyInvalidParam01_n) */ TEST(edgeMeta, copyInvalidParam02_n) { - nns_edge_metadata_s desc; + nns_edge_metadata_h desc; int ret; - ret = nns_edge_metadata_init (&desc); + ret = nns_edge_metadata_create (&desc); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_copy (&desc, NULL); + ret = nns_edge_metadata_copy (desc, NULL); EXPECT_NE (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_free (&desc); + ret = nns_edge_metadata_destroy (desc); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); } @@ -2982,52 +2982,48 @@ TEST(edgeMeta, copyInvalidParam02_n) */ TEST(edgeMeta, serialize) { - nns_edge_metadata_s src, desc; + nns_edge_metadata_h src, desc; char *value; void *data; size_t data_len; int ret; - ret = nns_edge_metadata_init (&src); + ret = nns_edge_metadata_create (&src); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_init (&desc); + ret = nns_edge_metadata_create (&desc); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_set (&src, "temp-key1", "temp-value1"); + ret = nns_edge_metadata_set (src, "temp-key1", "temp-value1"); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_set (&src, "temp-key2", "temp-value2"); + ret = nns_edge_metadata_set (src, "temp-key2", "temp-value2"); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_set (&src, "temp-key3", "temp-value3"); + ret = nns_edge_metadata_set (src, "temp-key3", "temp-value3"); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - EXPECT_EQ (src.list_len, 3U); - EXPECT_EQ (desc.list_len, 0U); - - ret = nns_edge_metadata_serialize (&src, &data, &data_len); + ret = nns_edge_metadata_serialize (src, &data, &data_len); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_deserialize (&desc, data, data_len); + ret = nns_edge_metadata_deserialize (desc, data, data_len); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - EXPECT_EQ (desc.list_len, 3U); - ret = nns_edge_metadata_get (&desc, "temp-key1", &value); + ret = nns_edge_metadata_get (desc, "temp-key1", &value); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); EXPECT_STREQ (value, "temp-value1"); nns_edge_free (value); - ret = nns_edge_metadata_get (&desc, "temp-key2", &value); + ret = nns_edge_metadata_get (desc, "temp-key2", &value); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); EXPECT_STREQ (value, "temp-value2"); nns_edge_free (value); - ret = nns_edge_metadata_get (&desc, "temp-key3", &value); + ret = nns_edge_metadata_get (desc, "temp-key3", &value); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); EXPECT_STREQ (value, "temp-value3"); nns_edge_free (value); - ret = nns_edge_metadata_free (&src); + ret = nns_edge_metadata_destroy (src); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_free (&desc); + ret = nns_edge_metadata_destroy (desc); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); free (data); @@ -3051,17 +3047,17 @@ TEST(edgeMeta, serializeInvalidParam01_n) */ TEST(edgeMeta, serializeInvalidParam02_n) { - nns_edge_metadata_s meta; + nns_edge_metadata_h meta; size_t data_len; int ret; - ret = nns_edge_metadata_init (&meta); + ret = nns_edge_metadata_create (&meta); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_serialize (&meta, NULL, &data_len); + ret = nns_edge_metadata_serialize (meta, NULL, &data_len); EXPECT_NE (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_free (&meta); + ret = nns_edge_metadata_destroy (meta); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); } @@ -3070,17 +3066,17 @@ TEST(edgeMeta, serializeInvalidParam02_n) */ TEST(edgeMeta, serializeInvalidParam03_n) { - nns_edge_metadata_s meta; + nns_edge_metadata_h meta; void *data; int ret; - ret = nns_edge_metadata_init (&meta); + ret = nns_edge_metadata_create (&meta); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_serialize (&meta, &data, NULL); + ret = nns_edge_metadata_serialize (meta, &data, NULL); EXPECT_NE (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_free (&meta); + ret = nns_edge_metadata_destroy (meta); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); } @@ -3109,19 +3105,19 @@ TEST(edgeMeta, deserializeInvalidParam01_n) */ TEST(edgeMeta, deserializeInvalidParam02_n) { - nns_edge_metadata_s meta; + nns_edge_metadata_h meta; size_t data_len; int ret; data_len = 10U + sizeof (unsigned int); - ret = nns_edge_metadata_init (&meta); + ret = nns_edge_metadata_create (&meta); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_deserialize (&meta, NULL, data_len); + ret = nns_edge_metadata_deserialize (meta, NULL, data_len); EXPECT_NE (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_free (&meta); + ret = nns_edge_metadata_destroy (meta); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); } @@ -3130,7 +3126,7 @@ TEST(edgeMeta, deserializeInvalidParam02_n) */ TEST(edgeMeta, deserializeInvalidParam03_n) { - nns_edge_metadata_s meta; + nns_edge_metadata_h meta; void *data; size_t data_len; int ret; @@ -3140,13 +3136,13 @@ TEST(edgeMeta, deserializeInvalidParam03_n) ASSERT_TRUE (data != NULL); ((unsigned int *) data)[0] = 0U; - ret = nns_edge_metadata_init (&meta); + ret = nns_edge_metadata_create (&meta); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_deserialize (&meta, data, 0); + ret = nns_edge_metadata_deserialize (meta, data, 0); EXPECT_NE (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_metadata_free (&meta); + ret = nns_edge_metadata_destroy (meta); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); free (data);