Separate edge event functions and related definitions.
Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
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
#include <aitt_c.h>
#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"
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;
-}
*/
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 */
--- /dev/null
+/* 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 <gichan2.jang@samsung.com>
+ * @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;
+}
--- /dev/null
+/* 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 <gichan2.jang@samsung.com>
+ * @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__ */
#include <sys/poll.h>
#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 <gtest/gtest.h>
#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"