Add skeleton code for custom connection
authorgichan2-jang <gichan2.jang@samsung.com>
Tue, 13 Aug 2024 07:54:27 +0000 (16:54 +0900)
committerjaeyun-jung <39614140+jaeyun-jung@users.noreply.github.com>
Wed, 21 Aug 2024 05:32:25 +0000 (14:32 +0900)
User can create tehir own connection type using custom connection.

Signed-off-by: gichan2-jang <gichan2.jang@samsung.com>
debian/nnstreamer-edge-dev.install
include/nnstreamer-edge-custom.h [new file with mode: 0644]
include/nnstreamer-edge.h
packaging/nnstreamer-edge.spec
src/CMakeLists.txt
src/libnnstreamer-edge/nnstreamer-edge-internal.c

index 554183849d774629e33dc0e0f415459be40cdc28..ea4991da2e8ce064fd28936a03e45e9d1e28b59e 100644 (file)
@@ -1,3 +1,4 @@
 /usr/include/nnstreamer/nnstreamer-edge.h
+/usr/include/nnstreamer/nnstreamer-edge-custom.h
 /usr/lib/*/pkgconfig/nnstreamer-edge.pc
 /usr/lib/*/libnnstreamer-edge.so
diff --git a/include/nnstreamer-edge-custom.h b/include/nnstreamer-edge-custom.h
new file mode 100644 (file)
index 0000000..09d6c2f
--- /dev/null
@@ -0,0 +1,40 @@
+/* SPDX-License-Identifier: Apache-2.0 */
+/**
+ * Copyright (C) 2024 Gichan Jang <gichan2.jang@samsung.com>
+ *
+ * @file   nnstreamer-edge-custom.h
+ * @date   14 Aug 2024
+ * @brief  APIs for NNStreamer-edge custom connection.
+ * @see    https://github.com/nnstreamer/nnstreamer
+ * @author Gichan Jang <gichan2.jang@samsung.com>
+ * @bug    No known bugs except for NYI items
+ */
+
+#ifndef __NNSTREAMER_EDGE_CUSTOM_H__
+#define __NNSTREAMER_EDGE_CUSTOM_H__
+
+#include <stdint.h>
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "nnstreamer-edge.h"
+
+typedef struct _NnsEdgeCustomDef
+{
+  char *(*nns_edge_get_connection_type) ();
+  int (*nns_edge_custom_create) (void **priv);
+  int (*nns_edge_custom_close) (void *priv);
+  int (*nns_edge_custom_start) (void *priv);
+  int (*nns_edge_custom_stop) (void *priv);
+  int (*nns_edge_custom_connect) (void *priv);
+  int (*nns_edge_custom_subscribe) (void *priv);
+  int (*nns_edge_custom_is_connected) (void *priv);
+  int (*nns_edge_custom_set_event_cb) (void *priv, nns_edge_event_cb cb, void *user_data);
+  int (*nns_edge_custom_send_data) (void *priv, nns_edge_data_h data_h);
+  int (*nns_edge_custom_set_option) (void *priv, const char *key, const char *value);
+  const char *(*nns_edge_custom_get_option) (void *priv, const char *key);
+} NnsEdgeCustomDef;
+
+void* nns_edge_custom_get_handle ();
+
+#endif /* __NNSTREAMER_EDGE_CUSTOM_H__ */
index b3d19e8ea26b0e440d403f548b872fe04f445b13..d546df4f473707c68652b3f464d916555da61c16 100644 (file)
@@ -62,6 +62,8 @@ typedef enum {
   NNS_EDGE_CONNECT_TYPE_HYBRID,
   NNS_EDGE_CONNECT_TYPE_AITT,
 
+  NNS_EDGE_CONNECT_TYPE_CUSTOM,
+
   NNS_EDGE_CONNECT_TYPE_UNKNOWN
 } nns_edge_connect_type_e;
 
index 27c92abea255a7d7cafb98acc642347ebb0cc603..a73354306c7421221503dcbd7b6bfdb5fe32a692 100644 (file)
@@ -173,6 +173,7 @@ rm -rf %{buildroot}
 
 %files devel
 %{_includedir}/nnstreamer/nnstreamer-edge.h
+%{_includedir}/nnstreamer/nnstreamer-edge-custom.h
 %{_libdir}/pkgconfig/nnstreamer-edge.pc
 
 %if 0%{?unit_test}
index c97febde7723f3babfa374586093effbb75a8bb7..acff3a85cbc9e49f05a4efd946e802e2aa65cc1f 100644 (file)
@@ -43,3 +43,4 @@ ENDIF()
 
 INSTALL (TARGETS ${NNS_EDGE_LIB_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR})
 INSTALL (FILES ${INCLUDE_DIR}/nnstreamer-edge.h DESTINATION ${INCLUDE_INSTALL_DIR})
+INSTALL (FILES ${INCLUDE_DIR}/nnstreamer-edge-custom.h DESTINATION ${INCLUDE_INSTALL_DIR})
index 7a951b6c8aa00cdd01dfe2ac6db65ef03d22ae28..bf79851c4e45a2f17b6418b972d3a8f83b03a9cd 100644 (file)
@@ -21,6 +21,7 @@
 #include "nnstreamer-edge-queue.h"
 #include "nnstreamer-edge-aitt.h"
 #include "nnstreamer-edge-mqtt.h"
+#include "nnstreamer-edge-custom.h"
 
 #ifndef MSG_NOSIGNAL
 #define MSG_NOSIGNAL 0