From 697759770ebef83200ff731df44ba8ed39ec6bd5 Mon Sep 17 00:00:00 2001 From: Jaeyun Date: Wed, 7 Sep 2022 20:28:27 +0900 Subject: [PATCH] [CodeClean] edge event functions Separate edge event functions and related definitions. Signed-off-by: Jaeyun --- src/CMakeLists.txt | 1 + src/libnnstreamer-edge/nnstreamer-edge-aitt.c | 1 + .../nnstreamer-edge-common.c | 172 ---------------- .../nnstreamer-edge-common.h | 18 -- .../nnstreamer-edge-event.c | 187 ++++++++++++++++++ .../nnstreamer-edge-event.h | 44 +++++ .../nnstreamer-edge-internal.c | 1 + tests/unittest_nnstreamer-edge.cc | 1 + 8 files changed, 235 insertions(+), 190 deletions(-) create mode 100644 src/libnnstreamer-edge/nnstreamer-edge-event.c create mode 100644 src/libnnstreamer-edge/nnstreamer-edge-event.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0c07270..de9c634 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -3,6 +3,7 @@ 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-data.c + ${NNS_EDGE_SRC_DIR}/nnstreamer-edge-event.c ${NNS_EDGE_SRC_DIR}/nnstreamer-edge-internal.c ${NNS_EDGE_SRC_DIR}/nnstreamer-edge-util.c ${NNS_EDGE_SRC_DIR}/nnstreamer-edge-queue.c diff --git a/src/libnnstreamer-edge/nnstreamer-edge-aitt.c b/src/libnnstreamer-edge/nnstreamer-edge-aitt.c index a4db801..04aac49 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-aitt.c +++ b/src/libnnstreamer-edge/nnstreamer-edge-aitt.c @@ -15,6 +15,7 @@ #include #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" diff --git a/src/libnnstreamer-edge/nnstreamer-edge-common.c b/src/libnnstreamer-edge/nnstreamer-edge-common.c index 34c5d7a..840582b 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-common.c +++ b/src/libnnstreamer-edge/nnstreamer-edge-common.c @@ -288,175 +288,3 @@ nns_edge_metadata_deserialize (nns_edge_metadata_s * meta, return NNS_EDGE_ERROR_NONE; } - -/** - * @brief Create nnstreamer edge event. - */ -int -nns_edge_event_create (nns_edge_event_e event, nns_edge_event_h * event_h) -{ - nns_edge_event_s *ee; - - if (!event_h) { - nns_edge_loge ("Invalid param, event_h should not be null."); - return NNS_EDGE_ERROR_INVALID_PARAMETER; - } - - if (event <= NNS_EDGE_EVENT_UNKNOWN) { - nns_edge_loge ("Invalid param, given event type is invalid."); - return NNS_EDGE_ERROR_INVALID_PARAMETER; - } - - ee = (nns_edge_event_s *) calloc (1, sizeof (nns_edge_event_s)); - if (!ee) { - nns_edge_loge ("Failed to allocate memory for edge event."); - return NNS_EDGE_ERROR_OUT_OF_MEMORY; - } - - ee->magic = NNS_EDGE_MAGIC; - ee->event = event; - - *event_h = ee; - return NNS_EDGE_ERROR_NONE; -} - -/** - * @brief Destroy nnstreamer edge event. - */ -int -nns_edge_event_destroy (nns_edge_event_h event_h) -{ - nns_edge_event_s *ee; - - ee = (nns_edge_event_s *) event_h; - - if (!NNS_EDGE_MAGIC_IS_VALID (ee)) { - nns_edge_loge ("Invalid param, given edge event is invalid."); - return NNS_EDGE_ERROR_INVALID_PARAMETER; - } - - ee->magic = NNS_EDGE_MAGIC_DEAD; - - if (ee->data.destroy_cb) - ee->data.destroy_cb (ee->data.data); - - SAFE_FREE (ee); - return NNS_EDGE_ERROR_NONE; -} - -/** - * @brief Set event data. - */ -int -nns_edge_event_set_data (nns_edge_event_h event_h, void *data, size_t data_len, - nns_edge_data_destroy_cb destroy_cb) -{ - nns_edge_event_s *ee; - - ee = (nns_edge_event_s *) event_h; - - if (!NNS_EDGE_MAGIC_IS_VALID (ee)) { - nns_edge_loge ("Invalid param, given edge event is invalid."); - return NNS_EDGE_ERROR_INVALID_PARAMETER; - } - - if (!data || data_len <= 0) { - nns_edge_loge ("Invalid param, data should not be null."); - return NNS_EDGE_ERROR_INVALID_PARAMETER; - } - - /* Clear old data and set new one. */ - if (ee->data.destroy_cb) - ee->data.destroy_cb (ee->data.data); - - ee->data.data = data; - ee->data.data_len = data_len; - ee->data.destroy_cb = destroy_cb; - - return NNS_EDGE_ERROR_NONE; -} - -/** - * @brief Get the nnstreamer edge event type. - */ -int -nns_edge_event_get_type (nns_edge_event_h event_h, nns_edge_event_e * event) -{ - nns_edge_event_s *ee; - - ee = (nns_edge_event_s *) event_h; - - if (!NNS_EDGE_MAGIC_IS_VALID (ee)) { - nns_edge_loge ("Invalid param, given edge event is invalid."); - return NNS_EDGE_ERROR_INVALID_PARAMETER; - } - - if (!event) { - nns_edge_loge ("Invalid param, event should not be null."); - return NNS_EDGE_ERROR_INVALID_PARAMETER; - } - - *event = ee->event; - return NNS_EDGE_ERROR_NONE; -} - -/** - * @brief Parse edge event (NNS_EDGE_EVENT_NEW_DATA_RECEIVED) and get received data. - * @note Caller should release returned edge data using nns_edge_data_destroy(). - */ -int -nns_edge_event_parse_new_data (nns_edge_event_h event_h, - nns_edge_data_h * data_h) -{ - nns_edge_event_s *ee; - - ee = (nns_edge_event_s *) event_h; - - if (!NNS_EDGE_MAGIC_IS_VALID (ee)) { - nns_edge_loge ("Invalid param, given edge event is invalid."); - return NNS_EDGE_ERROR_INVALID_PARAMETER; - } - - if (!data_h) { - nns_edge_loge ("Invalid param, data_h should not be null."); - return NNS_EDGE_ERROR_INVALID_PARAMETER; - } - - if (ee->event != NNS_EDGE_EVENT_NEW_DATA_RECEIVED) { - nns_edge_loge ("The edge event has invalid event type."); - return NNS_EDGE_ERROR_INVALID_PARAMETER; - } - - return nns_edge_data_copy ((nns_edge_data_h) ee->data.data, data_h); -} - -/** - * @brief Parse edge event (NNS_EDGE_EVENT_CAPABILITY) and get capability string. - * @note Caller should release returned string using free(). - */ -int -nns_edge_event_parse_capability (nns_edge_event_h event_h, char **capability) -{ - nns_edge_event_s *ee; - - ee = (nns_edge_event_s *) event_h; - - if (!NNS_EDGE_MAGIC_IS_VALID (ee)) { - nns_edge_loge ("Invalid param, given edge event is invalid."); - return NNS_EDGE_ERROR_INVALID_PARAMETER; - } - - if (!capability) { - nns_edge_loge ("Invalid param, capability should not be null."); - return NNS_EDGE_ERROR_INVALID_PARAMETER; - } - - if (ee->event != NNS_EDGE_EVENT_CAPABILITY) { - nns_edge_loge ("The edge event has invalid event type."); - return NNS_EDGE_ERROR_INVALID_PARAMETER; - } - - *capability = nns_edge_strdup (ee->data.data); - - return NNS_EDGE_ERROR_NONE; -} diff --git a/src/libnnstreamer-edge/nnstreamer-edge-common.h b/src/libnnstreamer-edge/nnstreamer-edge-common.h index 010c506..d648386 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-common.h +++ b/src/libnnstreamer-edge/nnstreamer-edge-common.h @@ -57,24 +57,6 @@ int nns_edge_metadata_serialize (nns_edge_metadata_s *meta, void **data, size_t */ int nns_edge_metadata_deserialize (nns_edge_metadata_s *meta, void *data, size_t data_len); -/** - * @brief Create nnstreamer edge event. - * @note This is internal function for edge event. - */ -int nns_edge_event_create (nns_edge_event_e event, nns_edge_event_h * event_h); - -/** - * @brief Destroy nnstreamer edge event. - * @note This is internal function for edge event. - */ -int nns_edge_event_destroy (nns_edge_event_h event_h); - -/** - * @brief Set event data. - * @note This is internal function for edge event. - */ -int nns_edge_event_set_data (nns_edge_event_h event_h, void *data, size_t data_len, nns_edge_data_destroy_cb destroy_cb); - #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/src/libnnstreamer-edge/nnstreamer-edge-event.c b/src/libnnstreamer-edge/nnstreamer-edge-event.c new file mode 100644 index 0000000..0a243e2 --- /dev/null +++ b/src/libnnstreamer-edge/nnstreamer-edge-event.c @@ -0,0 +1,187 @@ +/* SPDX-License-Identifier: Apache-2.0 */ +/** + * Copyright (C) 2022 Samsung Electronics Co., Ltd. All Rights Reserved. + * + * @file nnstreamer-edge-event.c + * @date 7 Sep 2022 + * @brief Util functions for nnstreamer edge event. + * @see https://github.com/nnstreamer/nnstreamer + * @author Gichan Jang + * @bug No known bugs except for NYI items + */ + +#include "nnstreamer-edge-data.h" +#include "nnstreamer-edge-event.h" +#include "nnstreamer-edge-internal.h" +#include "nnstreamer-edge-log.h" +#include "nnstreamer-edge-util.h" + +/** + * @brief Create nnstreamer edge event. + */ +int +nns_edge_event_create (nns_edge_event_e event, nns_edge_event_h * event_h) +{ + nns_edge_event_s *ee; + + if (!event_h) { + nns_edge_loge ("Invalid param, event_h should not be null."); + return NNS_EDGE_ERROR_INVALID_PARAMETER; + } + + if (event <= NNS_EDGE_EVENT_UNKNOWN) { + nns_edge_loge ("Invalid param, given event type is invalid."); + return NNS_EDGE_ERROR_INVALID_PARAMETER; + } + + ee = (nns_edge_event_s *) calloc (1, sizeof (nns_edge_event_s)); + if (!ee) { + nns_edge_loge ("Failed to allocate memory for edge event."); + return NNS_EDGE_ERROR_OUT_OF_MEMORY; + } + + ee->magic = NNS_EDGE_MAGIC; + ee->event = event; + + *event_h = ee; + return NNS_EDGE_ERROR_NONE; +} + +/** + * @brief Destroy nnstreamer edge event. + */ +int +nns_edge_event_destroy (nns_edge_event_h event_h) +{ + nns_edge_event_s *ee; + + ee = (nns_edge_event_s *) event_h; + + if (!NNS_EDGE_MAGIC_IS_VALID (ee)) { + nns_edge_loge ("Invalid param, given edge event is invalid."); + return NNS_EDGE_ERROR_INVALID_PARAMETER; + } + + ee->magic = NNS_EDGE_MAGIC_DEAD; + + if (ee->data.destroy_cb) + ee->data.destroy_cb (ee->data.data); + + SAFE_FREE (ee); + return NNS_EDGE_ERROR_NONE; +} + +/** + * @brief Set event data. + */ +int +nns_edge_event_set_data (nns_edge_event_h event_h, void *data, size_t data_len, + nns_edge_data_destroy_cb destroy_cb) +{ + nns_edge_event_s *ee; + + ee = (nns_edge_event_s *) event_h; + + if (!NNS_EDGE_MAGIC_IS_VALID (ee)) { + nns_edge_loge ("Invalid param, given edge event is invalid."); + return NNS_EDGE_ERROR_INVALID_PARAMETER; + } + + if (!data || data_len <= 0) { + nns_edge_loge ("Invalid param, data should not be null."); + return NNS_EDGE_ERROR_INVALID_PARAMETER; + } + + /* Clear old data and set new one. */ + if (ee->data.destroy_cb) + ee->data.destroy_cb (ee->data.data); + + ee->data.data = data; + ee->data.data_len = data_len; + ee->data.destroy_cb = destroy_cb; + + return NNS_EDGE_ERROR_NONE; +} + +/** + * @brief Get the nnstreamer edge event type. + */ +int +nns_edge_event_get_type (nns_edge_event_h event_h, nns_edge_event_e * event) +{ + nns_edge_event_s *ee; + + ee = (nns_edge_event_s *) event_h; + + if (!NNS_EDGE_MAGIC_IS_VALID (ee)) { + nns_edge_loge ("Invalid param, given edge event is invalid."); + return NNS_EDGE_ERROR_INVALID_PARAMETER; + } + + if (!event) { + nns_edge_loge ("Invalid param, event should not be null."); + return NNS_EDGE_ERROR_INVALID_PARAMETER; + } + + *event = ee->event; + return NNS_EDGE_ERROR_NONE; +} + +/** + * @brief Parse edge event (NNS_EDGE_EVENT_NEW_DATA_RECEIVED) and get received data. + */ +int +nns_edge_event_parse_new_data (nns_edge_event_h event_h, + nns_edge_data_h * data_h) +{ + nns_edge_event_s *ee; + + ee = (nns_edge_event_s *) event_h; + + if (!NNS_EDGE_MAGIC_IS_VALID (ee)) { + nns_edge_loge ("Invalid param, given edge event is invalid."); + return NNS_EDGE_ERROR_INVALID_PARAMETER; + } + + if (!data_h) { + nns_edge_loge ("Invalid param, data_h should not be null."); + return NNS_EDGE_ERROR_INVALID_PARAMETER; + } + + if (ee->event != NNS_EDGE_EVENT_NEW_DATA_RECEIVED) { + nns_edge_loge ("The edge event has invalid event type."); + return NNS_EDGE_ERROR_INVALID_PARAMETER; + } + + return nns_edge_data_copy ((nns_edge_data_h) ee->data.data, data_h); +} + +/** + * @brief Parse edge event (NNS_EDGE_EVENT_CAPABILITY) and get capability string. + */ +int +nns_edge_event_parse_capability (nns_edge_event_h event_h, char **capability) +{ + nns_edge_event_s *ee; + + ee = (nns_edge_event_s *) event_h; + + if (!NNS_EDGE_MAGIC_IS_VALID (ee)) { + nns_edge_loge ("Invalid param, given edge event is invalid."); + return NNS_EDGE_ERROR_INVALID_PARAMETER; + } + + if (!capability) { + nns_edge_loge ("Invalid param, capability should not be null."); + return NNS_EDGE_ERROR_INVALID_PARAMETER; + } + + if (ee->event != NNS_EDGE_EVENT_CAPABILITY) { + nns_edge_loge ("The edge event has invalid event type."); + return NNS_EDGE_ERROR_INVALID_PARAMETER; + } + + *capability = nns_edge_strdup (ee->data.data); + + return NNS_EDGE_ERROR_NONE; +} diff --git a/src/libnnstreamer-edge/nnstreamer-edge-event.h b/src/libnnstreamer-edge/nnstreamer-edge-event.h new file mode 100644 index 0000000..29ffef2 --- /dev/null +++ b/src/libnnstreamer-edge/nnstreamer-edge-event.h @@ -0,0 +1,44 @@ +/* SPDX-License-Identifier: Apache-2.0 */ +/** + * Copyright (C) 2022 Samsung Electronics Co., Ltd. All Rights Reserved. + * + * @file nnstreamer-edge-event.h + * @date 7 Sep 2022 + * @brief Util functions for nnstreamer edge event. + * @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. + */ + +#ifndef __NNSTREAMER_EDGE_EVENT_H__ +#define __NNSTREAMER_EDGE_EVENT_H__ + +#include "nnstreamer-edge.h" + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @brief Create nnstreamer edge event. + * @note This is internal function for edge event. + */ +int nns_edge_event_create (nns_edge_event_e event, nns_edge_event_h *event_h); + +/** + * @brief Destroy nnstreamer edge event. + * @note This is internal function for edge event. + */ +int nns_edge_event_destroy (nns_edge_event_h event_h); + +/** + * @brief Set event data. + * @note This is internal function for edge event. + */ +int nns_edge_event_set_data (nns_edge_event_h event_h, void *data, size_t data_len, nns_edge_data_destroy_cb destroy_cb); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ +#endif /* __NNSTREAMER_EDGE_EVENT_H__ */ diff --git a/src/libnnstreamer-edge/nnstreamer-edge-internal.c b/src/libnnstreamer-edge/nnstreamer-edge-internal.c index 4726c87..4d763c8 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-internal.c +++ b/src/libnnstreamer-edge/nnstreamer-edge-internal.c @@ -15,6 +15,7 @@ #include #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" diff --git a/tests/unittest_nnstreamer-edge.cc b/tests/unittest_nnstreamer-edge.cc index 33b505f..68f45b9 100644 --- a/tests/unittest_nnstreamer-edge.cc +++ b/tests/unittest_nnstreamer-edge.cc @@ -10,6 +10,7 @@ #include #include "nnstreamer-edge.h" #include "nnstreamer-edge-data.h" +#include "nnstreamer-edge-event.h" #include "nnstreamer-edge-common.h" #include "nnstreamer-edge-internal.h" #include "nnstreamer-edge-log.h" -- 2.34.1