From: Jaeyun Date: Wed, 20 Jul 2022 08:28:30 +0000 (+0900) Subject: [Meta] list for metadata X-Git-Tag: submit/tizen/20220810.074948~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cec49682054a6ee77ad9407823996e84584bdc0c;p=platform%2Fupstream%2Fnnstreamer-edge.git [Meta] list for metadata Replace hashtable (glib) to list, setting/getting metadata of edge handle. Signed-off-by: Jaeyun --- diff --git a/src/libnnstreamer-edge/nnstreamer-edge-common.c b/src/libnnstreamer-edge/nnstreamer-edge-common.c index 75c69bf..15ed6d2 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-common.c +++ b/src/libnnstreamer-edge/nnstreamer-edge-common.c @@ -629,8 +629,7 @@ nns_edge_data_create (nns_edge_data_h * data_h) memset (ed, 0, sizeof (nns_edge_data_s)); ed->magic = NNS_EDGE_MAGIC; - ed->info_table = g_hash_table_new_full (g_str_hash, g_str_equal, - nns_edge_free, nns_edge_free); + nns_edge_metadata_init (&ed->metadata); *data_h = ed; return NNS_EDGE_ERROR_NONE; @@ -659,7 +658,7 @@ nns_edge_data_destroy (nns_edge_data_h data_h) ed->data[i].destroy_cb (ed->data[i].data); } - g_hash_table_destroy (ed->info_table); + nns_edge_metadata_free (&ed->metadata); SAFE_FREE (ed); return NNS_EDGE_ERROR_NONE; @@ -691,8 +690,6 @@ nns_edge_data_copy (nns_edge_data_h data_h, nns_edge_data_h * new_data_h) { nns_edge_data_s *ed; nns_edge_data_s *copied; - GHashTableIter iter; - gpointer key, value; unsigned int i; int ret; @@ -724,13 +721,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; } - g_hash_table_iter_init (&iter, ed->info_table); - while (g_hash_table_iter_next (&iter, &key, &value)) { - g_hash_table_insert (copied->info_table, nns_edge_strdup (key), - nns_edge_strdup (value)); - } - - return NNS_EDGE_ERROR_NONE; + return nns_edge_metadata_copy (&copied->metadata, &ed->metadata); } /** @@ -854,10 +845,7 @@ nns_edge_data_set_info (nns_edge_data_h data_h, const char *key, return NNS_EDGE_ERROR_INVALID_PARAMETER; } - g_hash_table_insert (ed->info_table, nns_edge_strdup (key), - nns_edge_strdup (value)); - - return NNS_EDGE_ERROR_NONE; + return nns_edge_metadata_set (&ed->metadata, key, value); } /** @@ -867,7 +855,6 @@ int nns_edge_data_get_info (nns_edge_data_h data_h, const char *key, char **value) { nns_edge_data_s *ed; - char *val; ed = (nns_edge_data_s *) data_h; @@ -886,13 +873,5 @@ nns_edge_data_get_info (nns_edge_data_h data_h, const char *key, char **value) return NNS_EDGE_ERROR_INVALID_PARAMETER; } - val = g_hash_table_lookup (ed->info_table, key); - if (!val) { - nns_edge_loge ("Invalid param, cannot find info about '%s'.", key); - return NNS_EDGE_ERROR_INVALID_PARAMETER; - } - - *value = nns_edge_strdup (val); - - return NNS_EDGE_ERROR_NONE; + return nns_edge_metadata_get (&ed->metadata, key, value); } diff --git a/src/libnnstreamer-edge/nnstreamer-edge-common.h b/src/libnnstreamer-edge/nnstreamer-edge-common.h index 1ba441f..ab20825 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-common.h +++ b/src/libnnstreamer-edge/nnstreamer-edge-common.h @@ -83,7 +83,7 @@ typedef struct { unsigned int magic; unsigned int num; nns_edge_raw_data_s data[NNS_EDGE_DATA_LIMIT]; - GHashTable *info_table; + nns_edge_metadata_s metadata; } nns_edge_data_s; /** diff --git a/src/libnnstreamer-edge/nnstreamer-edge-internal.c b/src/libnnstreamer-edge/nnstreamer-edge-internal.c index 995177b..c5a2b15 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-internal.c +++ b/src/libnnstreamer-edge/nnstreamer-edge-internal.c @@ -968,6 +968,7 @@ nns_edge_create_handle (const char *id, nns_edge_connect_type_e connect_type, eh->host = nns_edge_strdup ("localhost"); eh->port = 0; eh->flags = flags; + nns_edge_metadata_init (&eh->meta); /* Connection data for each client ID. */ eh->conn_table = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, @@ -1071,6 +1072,7 @@ nns_edge_release_handle (nns_edge_h edge_h) g_hash_table_destroy (eh->conn_table); eh->conn_table = NULL; + nns_edge_metadata_free (&eh->meta); SAFE_FREE (eh->id); SAFE_FREE (eh->topic); SAFE_FREE (eh->host); @@ -1412,8 +1414,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 { - nns_edge_logw ("Failed to set edge info. Unknown key: %s", key); - ret = NNS_EDGE_ERROR_INVALID_PARAMETER; + ret = nns_edge_metadata_set (&eh->meta, key, value); } nns_edge_unlock (eh); @@ -1475,8 +1476,7 @@ nns_edge_get_info (nns_edge_h edge_h, const char *key, char **value) *value = nns_edge_strdup_printf ("%ld", (long int) eh->client_id); } } else { - nns_edge_logw ("Failed to get edge info. Unknown key: %s", key); - ret = NNS_EDGE_ERROR_INVALID_PARAMETER; + ret = nns_edge_metadata_get (&eh->meta, 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 9c433d6..ffb670d 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-internal.h +++ b/src/libnnstreamer-edge/nnstreamer-edge-internal.h @@ -36,6 +36,7 @@ typedef struct { char *dest_host; /**< destination IP address (broker or target device) */ int dest_port; /**< destination port number (broker or target device) */ int flags; + nns_edge_metadata_s meta; /* Edge event callback and user data */ nns_edge_event_cb event_cb;