From f6af1dbb3be2fe5352e777c8c1ba87ab2733e178 Mon Sep 17 00:00:00 2001 From: Jaeyun Date: Mon, 5 Dec 2022 20:21:39 +0900 Subject: [PATCH] [CodeClean/Handle] internal struct for handle Code clean, move definition for internal data struct and cleanup headers. Signed-off-by: Jaeyun --- src/libnnstreamer-edge/nnstreamer-edge-aitt.c | 2 +- src/libnnstreamer-edge/nnstreamer-edge-data.c | 22 +++++ src/libnnstreamer-edge/nnstreamer-edge-data.h | 21 ----- .../nnstreamer-edge-event.c | 11 ++- .../nnstreamer-edge-internal.c | 44 +++++++++- .../nnstreamer-edge-internal.h | 87 ------------------- .../nnstreamer-edge-mqtt-mosquitto.c | 2 +- .../nnstreamer-edge-mqtt-paho.c | 2 +- .../nnstreamer-edge-queue.c | 1 - src/libnnstreamer-edge/nnstreamer-edge-util.h | 9 ++ tests/unittest_nnstreamer-edge-aitt.cc | 2 +- tests/unittest_nnstreamer-edge.cc | 2 +- 12 files changed, 89 insertions(+), 116 deletions(-) delete mode 100644 src/libnnstreamer-edge/nnstreamer-edge-internal.h diff --git a/src/libnnstreamer-edge/nnstreamer-edge-aitt.c b/src/libnnstreamer-edge/nnstreamer-edge-aitt.c index 36ac30f..5f1f69b 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-aitt.c +++ b/src/libnnstreamer-edge/nnstreamer-edge-aitt.c @@ -17,9 +17,9 @@ #include #include +#include "nnstreamer-edge-aitt.h" #include "nnstreamer-edge-data.h" #include "nnstreamer-edge-event.h" -#include "nnstreamer-edge-internal.h" #include "nnstreamer-edge-util.h" #include "nnstreamer-edge-log.h" diff --git a/src/libnnstreamer-edge/nnstreamer-edge-data.c b/src/libnnstreamer-edge/nnstreamer-edge-data.c index 848f4c9..874ab30 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-data.c +++ b/src/libnnstreamer-edge/nnstreamer-edge-data.c @@ -14,6 +14,28 @@ #include "nnstreamer-edge-log.h" #include "nnstreamer-edge-util.h" +/** + * @brief Internal data structure for the header of the serialzied edge data. + */ +typedef struct +{ + uint32_t num_mem; + nns_size_t data_len[NNS_EDGE_DATA_LIMIT]; + nns_size_t meta_len; +} nns_edge_data_header_s; + +/** + * @brief Internal data structure for edge data. + */ +typedef struct +{ + uint32_t magic; + pthread_mutex_t lock; + uint32_t num; + nns_edge_raw_data_s data[NNS_EDGE_DATA_LIMIT]; + nns_edge_metadata_h metadata; +} nns_edge_data_s; + /** * @brief Create nnstreamer edge data. */ diff --git a/src/libnnstreamer-edge/nnstreamer-edge-data.h b/src/libnnstreamer-edge/nnstreamer-edge-data.h index d75ded7..fea984c 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-data.h +++ b/src/libnnstreamer-edge/nnstreamer-edge-data.h @@ -15,33 +15,12 @@ #define __NNSTREAMER_EDGE_DATA_H__ #include "nnstreamer-edge.h" -#include "nnstreamer-edge-internal.h" #include "nnstreamer-edge-metadata.h" #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ -/** - * @brief Internal data structure for edge data. - */ -typedef struct { - uint32_t magic; - pthread_mutex_t lock; - uint32_t num; - nns_edge_raw_data_s data[NNS_EDGE_DATA_LIMIT]; - nns_edge_metadata_h metadata; -} nns_edge_data_s; - -/** - * @brief Internal data structure for the header of the serialzied edge data. - */ -typedef struct { - uint32_t num_mem; - nns_size_t data_len[NNS_EDGE_DATA_LIMIT]; - nns_size_t meta_len; -} nns_edge_data_header_s; - /** * @brief Internal wrapper function of the nns_edge_data_destory() to avoid build warning of the incompatibe type casting. (See nns_edge_data_destroy_cb()) */ diff --git a/src/libnnstreamer-edge/nnstreamer-edge-event.c b/src/libnnstreamer-edge/nnstreamer-edge-event.c index 8712772..569ea4b 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-event.c +++ b/src/libnnstreamer-edge/nnstreamer-edge-event.c @@ -12,10 +12,19 @@ #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 Internal data structure for edge event. + */ +typedef struct +{ + uint32_t magic; + nns_edge_event_e event; + nns_edge_raw_data_s data; +} nns_edge_event_s; + /** * @brief Internal util function to invoke event callback. */ diff --git a/src/libnnstreamer-edge/nnstreamer-edge-internal.c b/src/libnnstreamer-edge/nnstreamer-edge-internal.c index 1a8b2dc..29e490d 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-internal.c +++ b/src/libnnstreamer-edge/nnstreamer-edge-internal.c @@ -18,7 +18,9 @@ #include "nnstreamer-edge-event.h" #include "nnstreamer-edge-log.h" #include "nnstreamer-edge-util.h" -#include "nnstreamer-edge-internal.h" +#include "nnstreamer-edge-queue.h" +#include "nnstreamer-edge-aitt.h" +#include "nnstreamer-edge-mqtt.h" #ifndef PTHREAD_CREATE_JOINABLE #define PTHREAD_CREATE_JOINABLE 0 @@ -31,6 +33,46 @@ #define N_BACKLOG 10 #define DEFAULT_TIMEOUT_SEC 10 +/** + * @brief Data structure for edge handle. + */ +typedef struct +{ + uint32_t magic; + pthread_mutex_t lock; + char *id; + char *topic; + nns_edge_connect_type_e connect_type; + char *host; /**< host name or IP address */ + int port; /**< port number (0~65535, default 0 to get available port.) */ + 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_h metadata; + + /* Edge event callback and user data */ + nns_edge_event_cb event_cb; + void *user_data; + + int64_t client_id; + char *caps_str; + + /* list of connection data */ + void *connections; + + /* socket listener */ + bool listening; + int listener_fd; + pthread_t listener_thread; + + /* thread and queue to send data */ + nns_edge_queue_h send_queue; + pthread_t send_thread; + + /* MQTT or AITT handle */ + void *broker_h; +} nns_edge_handle_s; + /** * @brief enum for nnstreamer edge query commands. */ diff --git a/src/libnnstreamer-edge/nnstreamer-edge-internal.h b/src/libnnstreamer-edge/nnstreamer-edge-internal.h deleted file mode 100644 index a900b23..0000000 --- a/src/libnnstreamer-edge/nnstreamer-edge-internal.h +++ /dev/null @@ -1,87 +0,0 @@ -/* SPDX-License-Identifier: Apache-2.0 */ -/** - * Copyright (C) 2022 Samsung Electronics Co., Ltd. All Rights Reserved. - * - * @file nnstreamer-edge-internal.h - * @date 11 May 2022 - * @brief Internal functions and definition to support communication among devices. - * @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. DO NOT export this file. - */ - -#ifndef __NNSTREAMER_EDGE_INTERNAL_H__ -#define __NNSTREAMER_EDGE_INTERNAL_H__ - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -#include "nnstreamer-edge.h" -#include "nnstreamer-edge-metadata.h" -#include "nnstreamer-edge-aitt.h" -#include "nnstreamer-edge-mqtt.h" -#include "nnstreamer-edge-queue.h" - -/** - * @brief Internal data structure for raw data. - */ -typedef struct { - void *data; - nns_size_t data_len; - nns_edge_data_destroy_cb destroy_cb; -} nns_edge_raw_data_s; - -/** - * @brief Internal data structure for edge event. - */ -typedef struct { - uint32_t magic; - nns_edge_event_e event; - nns_edge_raw_data_s data; -} nns_edge_event_s; - -/** - * @brief Data structure for edge handle. - */ -typedef struct { - uint32_t magic; - pthread_mutex_t lock; - char *id; - char *topic; - nns_edge_connect_type_e connect_type; - char *host; /**< host name or IP address */ - int port; /**< port number (0~65535, default 0 to get available port.) */ - 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_h metadata; - - /* Edge event callback and user data */ - nns_edge_event_cb event_cb; - void *user_data; - - int64_t client_id; - char *caps_str; - - /* list of connection data */ - void *connections; - - /* socket listener */ - bool listening; - int listener_fd; - pthread_t listener_thread; - - /* thread and queue to send data */ - nns_edge_queue_h send_queue; - pthread_t send_thread; - - /* MQTT or AITT handle */ - void *broker_h; -} nns_edge_handle_s; - -#ifdef __cplusplus -} -#endif /* __cplusplus */ -#endif /* __NNSTREAMER_EDGE_INTERNAL_H__ */ diff --git a/src/libnnstreamer-edge/nnstreamer-edge-mqtt-mosquitto.c b/src/libnnstreamer-edge/nnstreamer-edge-mqtt-mosquitto.c index 14c838c..9fc3e00 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-mqtt-mosquitto.c +++ b/src/libnnstreamer-edge/nnstreamer-edge-mqtt-mosquitto.c @@ -15,7 +15,7 @@ #endif #include -#include "nnstreamer-edge-internal.h" +#include "nnstreamer-edge-mqtt.h" #include "nnstreamer-edge-log.h" #include "nnstreamer-edge-util.h" #include "nnstreamer-edge-queue.h" diff --git a/src/libnnstreamer-edge/nnstreamer-edge-mqtt-paho.c b/src/libnnstreamer-edge/nnstreamer-edge-mqtt-paho.c index d5ea8f6..c877892 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-mqtt-paho.c +++ b/src/libnnstreamer-edge/nnstreamer-edge-mqtt-paho.c @@ -15,7 +15,7 @@ #endif #include -#include "nnstreamer-edge-internal.h" +#include "nnstreamer-edge-mqtt.h" #include "nnstreamer-edge-log.h" #include "nnstreamer-edge-util.h" #include "nnstreamer-edge-queue.h" diff --git a/src/libnnstreamer-edge/nnstreamer-edge-queue.c b/src/libnnstreamer-edge/nnstreamer-edge-queue.c index 0078e88..ea806c1 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-queue.c +++ b/src/libnnstreamer-edge/nnstreamer-edge-queue.c @@ -10,7 +10,6 @@ * @bug No known bugs except for NYI items. */ -#include "nnstreamer-edge-internal.h" #include "nnstreamer-edge-log.h" #include "nnstreamer-edge-queue.h" #include "nnstreamer-edge-util.h" diff --git a/src/libnnstreamer-edge/nnstreamer-edge-util.h b/src/libnnstreamer-edge/nnstreamer-edge-util.h index f6a5123..0238e7f 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-util.h +++ b/src/libnnstreamer-edge/nnstreamer-edge-util.h @@ -69,6 +69,15 @@ extern "C" { #define nns_edge_cond_timedwait(h,t) do { pthread_cond_timedwait (&(h)->cond, &(h)->lock, (t)); } while (0) #define nns_edge_cond_signal(h) do { pthread_cond_signal (&(h)->cond); } while (0) +/** + * @brief Internal data structure for raw data. + */ +typedef struct { + void *data; + nns_size_t data_len; + nns_edge_data_destroy_cb destroy_cb; +} nns_edge_raw_data_s; + /** * @brief Generate client ID. */ diff --git a/tests/unittest_nnstreamer-edge-aitt.cc b/tests/unittest_nnstreamer-edge-aitt.cc index bbc0a17..153a700 100644 --- a/tests/unittest_nnstreamer-edge-aitt.cc +++ b/tests/unittest_nnstreamer-edge-aitt.cc @@ -9,7 +9,7 @@ #include #include "nnstreamer-edge.h" -#include "nnstreamer-edge-internal.h" +#include "nnstreamer-edge-aitt.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 55e23e0..cb85041 100644 --- a/tests/unittest_nnstreamer-edge.cc +++ b/tests/unittest_nnstreamer-edge.cc @@ -12,7 +12,7 @@ #include "nnstreamer-edge-data.h" #include "nnstreamer-edge-event.h" #include "nnstreamer-edge-metadata.h" -#include "nnstreamer-edge-internal.h" +#include "nnstreamer-edge-mqtt.h" #include "nnstreamer-edge-log.h" #include "nnstreamer-edge-util.h" #include "nnstreamer-edge-queue.h" -- 2.34.1