From: gichan Date: Wed, 14 Sep 2022 09:19:20 +0000 (+0900) Subject: [Edge] Allow NULL ID when create edge handle. X-Git-Tag: accepted/tizen/unified/20220919.012623~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6ea30b2a2fc303c3679a2ee1199342600c5c19d3;p=platform%2Fupstream%2Fnnstreamer-edge.git [Edge] Allow NULL ID when create edge handle. - Allow NULL ID when create edge handle. - Add event_type to notify connection closure. Signed-off-by: gichan --- diff --git a/include/nnstreamer-edge.h b/include/nnstreamer-edge.h index cd808db..f2547e3 100644 --- a/include/nnstreamer-edge.h +++ b/include/nnstreamer-edge.h @@ -48,6 +48,7 @@ typedef enum { NNS_EDGE_EVENT_CAPABILITY, NNS_EDGE_EVENT_NEW_DATA_RECEIVED, NNS_EDGE_EVENT_CALLBACK_RELEASED, + NNS_EDGE_EVENT_CONNECTION_CLOSED, NNS_EDGE_EVENT_CUSTOM = 0x01000000 } nns_edge_event_e; diff --git a/src/libnnstreamer-edge/nnstreamer-edge-internal.c b/src/libnnstreamer-edge/nnstreamer-edge-internal.c index bff1d74..4726c87 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-internal.c +++ b/src/libnnstreamer-edge/nnstreamer-edge-internal.c @@ -775,6 +775,8 @@ _nns_edge_message_handler (void *thread_data) ("Received error from client, remove connection of client (ID: %lld).", (long long) client_id); _nns_edge_remove_connection (eh, client_id); + _nns_edge_invoke_event_cb (eh, NNS_EDGE_EVENT_CONNECTION_CLOSED, + NULL, 0, NULL); } return NULL; @@ -1034,7 +1036,7 @@ _nns_edge_accept_socket (nns_edge_handle_s * eh) if ((NNS_EDGE_NODE_TYPE_QUERY_SERVER == eh->node_type) || (NNS_EDGE_NODE_TYPE_PUB == eh->node_type)) { - client_id = nns_edge_generate_client_id (); + client_id = nns_edge_generate_id (); } else { client_id = eh->client_id; } @@ -1208,11 +1210,6 @@ nns_edge_create_handle (const char *id, nns_edge_connect_type_e connect_type, { nns_edge_handle_s *eh; - if (!STR_IS_VALID (id)) { - nns_edge_loge ("Invalid param, given ID is invalid."); - return NNS_EDGE_ERROR_INVALID_PARAMETER; - } - if (connect_type < 0 || connect_type >= NNS_EDGE_CONNECT_TYPE_UNKNOWN) { nns_edge_loge ("Invalid param, set valid connect type."); return NNS_EDGE_ERROR_INVALID_PARAMETER; @@ -1240,7 +1237,8 @@ nns_edge_create_handle (const char *id, nns_edge_connect_type_e connect_type, nns_edge_lock_init (eh); eh->magic = NNS_EDGE_MAGIC; - eh->id = nns_edge_strdup (id); + eh->id = STR_IS_VALID (id) ? nns_edge_strdup (id) : + nns_edge_strdup_printf ("%lld", (long long) nns_edge_generate_id ()); eh->connect_type = connect_type; eh->host = nns_edge_strdup ("localhost"); eh->port = 0; diff --git a/src/libnnstreamer-edge/nnstreamer-edge-util.c b/src/libnnstreamer-edge/nnstreamer-edge-util.c index f5834ce..f26014d 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-util.c +++ b/src/libnnstreamer-edge/nnstreamer-edge-util.c @@ -16,18 +16,18 @@ #include "nnstreamer-edge-util.h" /** - * @brief Generate client ID. + * @brief Generate ID. */ int64_t -nns_edge_generate_client_id (void) +nns_edge_generate_id (void) { struct timespec ts; - int64_t client_id; + int64_t _id; clock_gettime (CLOCK_MONOTONIC, &ts); - client_id = ((int64_t) ts.tv_sec) * 1000000 + ts.tv_nsec / 1000; + _id = ((int64_t) ts.tv_sec) * 1000000 + ts.tv_nsec / 1000; - return client_id; + return _id; } /** diff --git a/src/libnnstreamer-edge/nnstreamer-edge-util.h b/src/libnnstreamer-edge/nnstreamer-edge-util.h index 61065e9..ba8ce5a 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-util.h +++ b/src/libnnstreamer-edge/nnstreamer-edge-util.h @@ -60,7 +60,7 @@ extern "C" { /** * @brief Generate client ID. */ -int64_t nns_edge_generate_client_id (void); +int64_t nns_edge_generate_id (void); /** * @brief Get available port number. diff --git a/tests/unittest_nnstreamer-edge.cc b/tests/unittest_nnstreamer-edge.cc index b27699d..33b505f 100644 --- a/tests/unittest_nnstreamer-edge.cc +++ b/tests/unittest_nnstreamer-edge.cc @@ -270,19 +270,6 @@ TEST(edge, createHandleInvalidParam01_n) nns_edge_h edge_h; int ret; - ret = nns_edge_create_handle (NULL, NNS_EDGE_CONNECT_TYPE_TCP, - NNS_EDGE_NODE_TYPE_QUERY_CLIENT, &edge_h); - EXPECT_NE (ret, NNS_EDGE_ERROR_NONE); -} - -/** - * @brief Create edge handle - invalid param. - */ -TEST(edge, createHandleInvalidParam02_n) -{ - nns_edge_h edge_h; - int ret; - ret = nns_edge_create_handle ("temp-id", NNS_EDGE_CONNECT_TYPE_UNKNOWN, NNS_EDGE_NODE_TYPE_QUERY_CLIENT, &edge_h); EXPECT_NE (ret, NNS_EDGE_ERROR_NONE); @@ -291,7 +278,7 @@ TEST(edge, createHandleInvalidParam02_n) /** * @brief Create edge handle - invalid param. */ -TEST(edge, createHandleInvalidParam03_n) +TEST(edge, createHandleInvalidParam02_n) { int ret; @@ -303,20 +290,7 @@ TEST(edge, createHandleInvalidParam03_n) /** * @brief Create edge handle - invalid param. */ -TEST(edge, createHandleInvalidParam04_n) -{ - nns_edge_h edge_h; - int ret; - - ret = nns_edge_create_handle ("", NNS_EDGE_CONNECT_TYPE_MQTT, - NNS_EDGE_NODE_TYPE_QUERY_CLIENT, &edge_h); - EXPECT_NE (ret, NNS_EDGE_ERROR_NONE); -} - -/** - * @brief Create edge handle - invalid param. - */ -TEST(edge, createHandleInvalidParam05_n) +TEST(edge, createHandleInvalidParam03_n) { nns_edge_h edge_h; int ret;