Enable dbus activation
authorsaerome.kim <saerome.kim@samsung.com>
Tue, 12 Dec 2017 00:28:10 +0000 (09:28 +0900)
committersaerome.kim <saerome.kim@samsung.com>
Mon, 2 Jul 2018 10:38:37 +0000 (19:38 +0900)
Signed-off-by: saerome.kim <saerome.kim@samsung.com>
27 files changed:
packaging/d2d-manager.spec [changed mode: 0755->0644]
packaging/d2dm.service [moved from packaging/d2d-manager.service with 88% similarity]
packaging/d2ds.service [moved from packaging/d2d-subowner.service with 88% similarity, mode: 0644]
packaging/fnm.service [moved from packaging/fn-manager.service with 100% similarity, mode: 0644]
packaging/net.d2dm.service [moved from packaging/net.d2d.manager.service with 54% similarity]
packaging/net.d2ds.service [moved from packaging/net.d2d.subowner.service with 53% similarity, mode: 0644]
packaging/net.fnm.service [moved from packaging/net.fn.manager.service with 65% similarity, mode: 0644]
src/d2d-manager/CMakeLists.txt
src/d2d-manager/d2dm-gdbus.c [new file with mode: 0644]
src/d2d-manager/d2dm-gdbus.h [moved from src/subownerclient/main.c with 60% similarity, mode: 0644]
src/d2d-manager/d2dm-log.h [moved from src/d2d-manager/d2d-manager-log.h with 77% similarity]
src/d2d-manager/d2dm-service-interface.c [new file with mode: 0644]
src/d2d-manager/d2dm-service-interface.h [new file with mode: 0644]
src/d2d-manager/d2dm-service.c [new file with mode: 0644]
src/d2d-manager/d2dm-service.h [new file with mode: 0644]
src/d2d-manager/d2dm-util.h [moved from src/include/d2d-common.h with 76% similarity]
src/d2d-manager/d2dm.c [moved from src/d2d-manager/d2d-manager.c with 87% similarity]
src/d2d-manager/d2dm.h [moved from src/d2d-manager/d2d-manager.h with 67% similarity]
src/d2d-manager/introspection/.d2d-generated-code.h.swp [new file with mode: 0644]
src/d2d-manager/introspection/d2dm.xml [new file with mode: 0644]
src/d2d-manager/introspection/enabler.xml [moved from src/introspection/manager.xml with 91% similarity]
src/d2d-manager/introspection/gen.sh [new file with mode: 0755]
src/include/hw_emul/hw_interface.h [changed mode: 0755->0644]
src/include/hw_emul/ss_emul.h [changed mode: 0755->0644]
src/introspection/d2d-manager.c [deleted file]
src/introspection/gen.sh [deleted file]
src/subownerclient/CMakeLists.txt [deleted file]

old mode 100755 (executable)
new mode 100644 (file)
index 7f64aa1..455b07e
@@ -5,14 +5,14 @@ Release:    0
 Group:      Network & Connectivity/Other
 License:    Apache-2.0
 Source0:    %{name}-%{version}.tar.gz
-Source2:    %{name}.service
+Source2:    d2dm.service
 Source3:    %{name}.manifest
 Source4:    %{name}-devel.manifest
-Source5:    net.d2d.manager.service
-Source6:    fn-manager.service
-Source7:    net.fn.manager.service
-Source8:    d2d-subowner.service
-Source9:    net.d2d.subowner.service
+Source5:    net.d2dm.service
+Source6:    fnm.service
+Source7:    net.fnm.service
+Source8:    d2ds.service
+Source9:    net.d2ds.service
 
 BuildRequires: cmake
 BuildRequires: pkgconfig(iotivity)
@@ -81,17 +81,17 @@ rm -rf %{buildroot}/BUILD/%{name}*
 %make_install
 
 mkdir -p %{buildroot}%{_datadir}/dbus-1/system-services/
-cp %{SOURCE5} %{buildroot}%{_datadir}/dbus-1/system-services/net.d2d.manager.service
+cp %{SOURCE5} %{buildroot}%{_datadir}/dbus-1/system-services/net.d2dm.service
 mkdir -p %{buildroot}%{_unitdir}
-cp %{SOURCE2} %{buildroot}%{_unitdir}/%{name}.service
+cp %{SOURCE2} %{buildroot}%{_unitdir}/d2dm.service
 
-cp %{SOURCE7} %{buildroot}%{_datadir}/dbus-1/system-services/net.fn.manager.service
+cp %{SOURCE7} %{buildroot}%{_datadir}/dbus-1/system-services/net.fnm.service
 mkdir -p %{buildroot}%{_unitdir}
-cp %{SOURCE6} %{buildroot}%{_unitdir}/fn-manager.service
+cp %{SOURCE6} %{buildroot}%{_unitdir}/fnm.service
 
-cp %{SOURCE9} %{buildroot}%{_datadir}/dbus-1/system-services/net.d2d.subowner.service
+cp %{SOURCE9} %{buildroot}%{_datadir}/dbus-1/system-services/net.d2ds.service
 mkdir -p %{buildroot}%{_unitdir}
-cp %{SOURCE8} %{buildroot}%{_unitdir}/d2d-subowner.service
+cp %{SOURCE8} %{buildroot}%{_unitdir}/d2ds.service
 
 cp test/oic_svr_db_client.dat oic_svr_db_subowner_client.dat
 
@@ -103,9 +103,9 @@ cp test/oic_svr_db_client.dat oic_svr_db_subowner_client.dat
 %{_bindir}/subowner
 %{_bindir}/fn-manager
 %attr(644,root,root) %{_datadir}/dbus-1/system-services/*
-%attr(644,root,root) %{_unitdir}/%{name}.service
-%attr(644,root,root) %{_unitdir}/fn-manager.service
-%attr(644,root,root) %{_unitdir}/d2d-subowner.service
+%attr(644,root,root) %{_unitdir}/d2dm.service
+%attr(644,root,root) %{_unitdir}/fnm.service
+%attr(644,root,root) %{_unitdir}/d2ds.service
 
 %files devel
 %manifest %{name}-devel.manifest
similarity index 88%
rename from packaging/d2d-manager.service
rename to packaging/d2dm.service
index 5f4f684..5e613a5 100644 (file)
@@ -7,6 +7,6 @@ After=dbus.socket
 Type=dbus
 User=network_fw
 Group=network_fw
-BusName=net.d2d.manager
+BusName=net.d2dm.enabler
 SmackProcessLabel=System
 ExecStart=/usr/bin/d2d-manager
old mode 100755 (executable)
new mode 100644 (file)
similarity index 88%
rename from packaging/d2d-subowner.service
rename to packaging/d2ds.service
index ca0fc1d..70f6105
@@ -7,6 +7,6 @@ After=dbus.socket
 Type=dbus
 User=network_fw
 Group=network_fw
-BusName=net.d2d.subowner
+BusName=net.d2ds.enabler
 SmackProcessLabel=System
 ExecStart=/usr/bin/d2d-subowner
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from packaging/fn-manager.service
rename to packaging/fnm.service
similarity index 54%
rename from packaging/net.d2d.manager.service
rename to packaging/net.d2dm.service
index 187065c..27cc224 100644 (file)
@@ -1,7 +1,7 @@
 [D-BUS Service]
-Name=net.d2d.manager
+Name=net.d2dm.enabler
 
 Exec=/bin/false
 User=network_fw
 Group=network_fw
-SystemdService=d2d-manager.service
+SystemdService=d2dm.service
old mode 100755 (executable)
new mode 100644 (file)
similarity index 53%
rename from packaging/net.d2d.subowner.service
rename to packaging/net.d2ds.service
index 17bed18..a6a624e
@@ -1,7 +1,7 @@
 [D-BUS Service]
-Name=net.d2d.subowner
+Name=net.d2ds.enabler
 
 Exec=/bin/false
 User=network_fw
 Group=network_fw
-SystemdService=d2d-subowner.service
+SystemdService=d2ds.service
old mode 100755 (executable)
new mode 100644 (file)
similarity index 65%
rename from packaging/net.fn.manager.service
rename to packaging/net.fnm.service
index 0bbecfc..ef695d2
@@ -1,10 +1,10 @@
 [D-BUS Service]
-Name=net.fn.manager
+Name=net.fn.enabler
 
 Exec=/bin/false
 User=network_fw
 Group=network_fw
-SystemdService=fn-manager.service
+SystemdService=fnm.service
 
 [Install]
 WantedBy=multi-user.target
index 47be74a..778664c 100644 (file)
@@ -1,11 +1,29 @@
-MESSAGE("===================================================================") 
-MESSAGE("Building...d2d-manager") 
 MESSAGE("===================================================================")
+MESSAGE("Building...d2d-manager")
+MESSAGE("===================================================================")
+
+SET(INTROSPECTION_PATH ${CMAKE_CURRENT_SOURCE_DIR}/introspection)
+MESSAGE("KSR : ${INTROSPECTION_PATH}")
+ADD_CUSTOM_COMMAND(
+       OUTPUT dbus
+       COMMAND gdbus-codegen
+               --interface-prefix net.d2dm.
+               --generate-c-code d2dm-generated-code
+               --c-generate-object-manager
+               --generate-docbook generated-docs
+               ${INTROSPECTION_PATH}/d2dm.xml
+               ${INTROSPECTION_PATH}/enabler.xml
+       COMMENT "Generating d2dm GDBus .c/.h"
+)
+ADD_CUSTOM_TARGET(GENERATED_DBUS_CODE DEPENDS dbus)
 
-MESSAGE(" - Set source folder") 
+MESSAGE(" - Set source folder")
 FILE(GLOB D2D_MANAGER_SRCS *.c)
+SET(D2D_MANAGER_SRCS ${D2D_MANAGER_SRCS} ${CMAKE_CURRENT_SOURCE_DIR}/d2dm-generated-code.c)
+SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/d2dm-generated-code.c PROPERTIES GENERATED TRUE)
 
 SET(D2D_MANAGER "d2d-manager")
-ADD_EXECUTABLE(${D2D_MANAGER} ${D2D_MANAGER_SRCS}) 
-TARGET_LINK_LIBRARIES(${D2D_MANAGER} ${daemon_pkgs_LIBRARIES} pthread) 
+ADD_EXECUTABLE(${D2D_MANAGER} ${D2D_MANAGER_SRCS})
+ADD_DEPENDENCIES(${D2D_MANAGER} GENERATED_DBUS_CODE)
+TARGET_LINK_LIBRARIES(${D2D_MANAGER} ${daemon_pkgs_LIBRARIES} pthread)
 INSTALL(TARGETS ${D2D_MANAGER} DESTINATION bin)
diff --git a/src/d2d-manager/d2dm-gdbus.c b/src/d2d-manager/d2dm-gdbus.c
new file mode 100644 (file)
index 0000000..f97dbe7
--- /dev/null
@@ -0,0 +1,178 @@
+/*\r
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+#include "d2dm-log.h"\r
+#include "d2dm-util.h"\r
+#include "d2dm-gdbus.h"\r
+\r
+static int _d2dm_close_gdbus_call(d2dm_service *service)\r
+{\r
+       /* CHECK: is connection ref count required? */\r
+       g_object_unref(service->connection);\r
+       service->connection = NULL;\r
+\r
+       return D2DM_ERROR_NONE;\r
+}\r
+\r
+static void _dbus_name_owner_notify(GObject *object, GParamSpec *pspec,\r
+               gpointer *user_data)\r
+{\r
+       GDBusProxy *proxy = G_DBUS_PROXY(object);\r
+       gchar *name_owner = g_dbus_proxy_get_name_owner(proxy);\r
+       d2dm_service *service = (d2dm_service*)user_data;\r
+\r
+       NOTUSED(pspec);\r
+\r
+       if (NULL == name_owner) {\r
+               D2DM_LOGE("name_owner is not exists !");\r
+               _d2dm_close_gdbus_call(service);\r
+       }\r
+\r
+       g_free(name_owner);\r
+}\r
+\r
+static int _d2dm_create_gdbus_call(d2dm_service *service)\r
+{\r
+       int id;\r
+       GError *error = NULL;\r
+\r
+       if (NULL == service)\r
+               return D2DM_ERROR_INVALID_PARAMETER;\r
+\r
+       if (NULL != service->connection)\r
+               return D2DM_ERROR_ALREADY_REGISTERED;\r
+\r
+       service->connection = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error);\r
+       if (service->connection == NULL) {\r
+               if (error != NULL) {\r
+                       D2DM_LOGE("Failed to connect to the D-BUS daemon [%s]", error->message);\r
+                       g_error_free(error);\r
+               }\r
+               return D2DM_ERROR_IO_ERROR;\r
+       }\r
+\r
+       id = g_signal_connect(service->connection, "notify::g-name-owner",\r
+                       G_CALLBACK(_dbus_name_owner_notify), service);\r
+       if (0 == id) {\r
+               D2DM_LOGE("g_signal_connect() Fail");\r
+               g_object_unref(service->connection);\r
+               service->connection = NULL;\r
+               return D2DM_ERROR_IO_ERROR;\r
+       }\r
+\r
+       return D2DM_ERROR_NONE;\r
+}\r
+\r
+static void _d2dm_subscribe_event(d2dm_service *service)\r
+{\r
+       unsigned int id = 0;\r
+\r
+       d2dm_check_null_ret("service", service);\r
+#if 0\r
+       id = g_dbus_connection_signal_subscribe(\r
+                       (GDBusConnection *)service->connection,\r
+                       CONNMAN_SERVER_NAME, CONNMAN_INTERFACE_MANAGER,\r
+                       "ScanDone", "/", NULL,\r
+                       G_DBUS_CALL_FLAGS_NONE, _wmeshd_signal_handler, service, NULL);\r
+       if (0 == id) {\r
+               WMESH_LOGE("g_dbus_connection_signal_subscribe(ScanDone) Fail(%d)", errno);\r
+               return;\r
+       }\r
+       service->dbus_sub_ids = g_list_append(service->dbus_sub_ids, GUINT_TO_POINTER(id));\r
+       WMESH_LOGD("[Signal subscribe] : ScanDone (%d)", id);\r
+\r
+       /* To monitor mesh profiles */\r
+       id = g_dbus_connection_signal_subscribe(\r
+                       (GDBusConnection *)service->connection,\r
+                       CONNMAN_SERVER_NAME,\r
+                       CONNMAN_INTERFACE_MESH,\r
+                       "PropertyChanged",\r
+                       NULL, /* Path */\r
+                       NULL,\r
+                       G_DBUS_CALL_FLAGS_NONE, _wmeshd_signal_handler, service, NULL);\r
+       if (0 == id) {\r
+               WMESH_LOGE("g_dbus_connection_signal_subscribe(ScanDone) Fail(%d)", errno);\r
+               return;\r
+       }\r
+       service->dbus_sub_ids = g_list_append(service->dbus_sub_ids, GUINT_TO_POINTER(id));\r
+       WMESH_LOGD("[Signal subscribe] : PropertyChanged (%d)", id);\r
+#endif\r
+       /* End of subscription */\r
+}\r
+\r
+\r
+static void _on_unsubscribe_ids(gpointer data, gpointer user_data)\r
+{\r
+       unsigned int id = GPOINTER_TO_UINT(data);\r
+       d2dm_service *service = (d2dm_service*)user_data;\r
+\r
+       D2DM_LOGD("[Signal unsubscribe] : %d", id);\r
+       g_dbus_connection_signal_unsubscribe((GDBusConnection *)service->connection, id);\r
+}\r
+\r
+static void _wmeshd_unsubscribe_event(d2dm_service *service)\r
+{\r
+       d2dm_check_null_ret("service", service);\r
+\r
+       g_list_foreach(service->dbus_sub_ids, _on_unsubscribe_ids, service);\r
+\r
+       g_list_free(service->dbus_sub_ids);\r
+       service->dbus_sub_ids = NULL;\r
+}\r
+\r
+\r
+int d2dm_dbus_start(d2dm_service *service)\r
+{\r
+       int rv;\r
+\r
+       rv = _d2dm_create_gdbus_call(service);\r
+       if (D2DM_ERROR_NONE != rv)\r
+               return rv;\r
+\r
+       service->ca = g_cancellable_new();\r
+\r
+       /* Create all required proxies here */\r
+#if 0\r
+       _gproxy_connman = _proxy_get_connman(service);\r
+       wmeshd_check_null_ret_error("_gproxy_connman", _gproxy_connman,\r
+                               WMESHD_ERROR_IO_ERROR);\r
+       g_dbus_proxy_set_default_timeout(\r
+                       G_DBUS_PROXY(_gproxy_connman), WMESH_DBUS_PROXY_TIMEOUT);\r
+#endif\r
+       /* Subscribe events */\r
+       _d2dm_subscribe_event(service);\r
+\r
+       return D2DM_ERROR_NONE;\r
+}\r
+\r
+int d2dm_dbus_stop(d2dm_service *service)\r
+{\r
+       int rv;\r
+\r
+       if (NULL == service)\r
+               return D2DM_ERROR_INVALID_PARAMETER;\r
+\r
+       /* Unsubscribe events */\r
+       _wmeshd_unsubscribe_event(service);\r
+\r
+       g_cancellable_cancel(service->ca);\r
+       g_object_unref(service->ca);\r
+       service->ca = NULL;\r
+\r
+       rv = _d2dm_close_gdbus_call(service);\r
+       return rv;\r
+}\r
+\r
old mode 100755 (executable)
new mode 100644 (file)
similarity index 60%
rename from src/subownerclient/main.c
rename to src/d2d-manager/d2dm-gdbus.h
index eb6415d..c1714f5
@@ -1,33 +1,34 @@
-/*
- * Copyright (c) 2012, 2013 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <stdio.h>
-#include <stdint.h>
-#include <dlog.h>
-#include <aul.h>
-#include <glib.h>
-
-int main()
-{
-       int ret;
-
-       dlog_print(DLOG_DEBUG, "D2D_DAEMON", "run daemon");
-
-       ret = aul_launch_app("org.tizen.familynet-manager", NULL);
-       dlog_print(DLOG_DEBUG, "D2D_DAEMON", "launch app result : %d", ret);
-
-       return 0;
-}
+/*\r
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+#ifndef __D2DM_GDBUS_H__\r
+#define __D2DM_GDBUS_H__\r
+\r
+#include "d2dm.h"\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+int d2dm_dbus_start(d2dm_service *service);\r
+int d2dm_dbus_stop(d2dm_service *service);\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#endif /** __D2DM_GDBUS_H__ */\r
+\r
similarity index 77%
rename from src/d2d-manager/d2d-manager-log.h
rename to src/d2d-manager/d2dm-log.h
index 16f04f2..571dd25 100644 (file)
  * limitations under the License.\r
  *\r
  */\r
-#ifndef __D2D_MANAGER_LOG_H__\r
-#define __D2D_MANAGER_LOG_H__\r
+#ifndef __D2D_LOG_H__\r
+#define __D2D_LOG_H__\r
 \r
-#ifdef D2D_MAN_LOG_TAG\r
-#undef D2D_MAN_LOG_TAG\r
+#ifdef LOG_TAG\r
+#undef LOG_TAG\r
 #endif\r
 \r
 #ifdef USE_DLOG\r
 #include <dlog.h>\r
 \r
-#undef D2D_MAN_LOG_TAG\r
-#define D2D_MAN_LOG_TAG "D2D_MANAGER"\r
+#undef LOG_TAG\r
+#define LOG_TAG "D2D_MANAGER"\r
 \r
 #define D2DM_LOGV(format, args...) LOGV(format, ##args)\r
 #define D2DM_LOGD(format, args...) LOGD(format, ##args)\r
@@ -39,8 +39,8 @@
 #define __D2DM_LOG_FUNC_ENTER__ LOGD("Enter")\r
 #define __D2DM_LOG_FUNC_EXIT__ LOGD("Quit")\r
 \r
-#define D2DM_SECLOGI(format, args...) SECURE_LOG(LOG_INFO, D2D_MAN_LOG_TAG, format, ##args)\r
-#define D2DM_SECLOGD(format, args...) SECURE_LOG(LOG_DEBUG, D2D_MAN_LOG_TAG, format, ##args)\r
+#define D2DM_SECLOGI(format, args...) SECURE_LOG(LOG_INFO, LOG_TAG, format, ##args)\r
+#define D2DM_SECLOGD(format, args...) SECURE_LOG(LOG_DEBUG, LOG_TAG, format, ##args)\r
 \r
 #else /* USE_DLOG */\r
 \r
@@ -59,4 +59,4 @@
 \r
 #endif /* USE_DLOG */\r
 \r
-#endif /* __D2D_MANAGER_LOG_H__ */\r
+#endif /* __D2D_LOG_H__ */\r
diff --git a/src/d2d-manager/d2dm-service-interface.c b/src/d2d-manager/d2dm-service-interface.c
new file mode 100644 (file)
index 0000000..9e03d06
--- /dev/null
@@ -0,0 +1,354 @@
+/*\r
+ * Network Configuration Module\r
+ *\r
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd. All rights reserved.\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ *\r
+ */\r
+#include <glib.h>\r
+\r
+#include "d2dm.h"\r
+#include "d2dm-log.h"\r
+#include "d2dm-util.h"\r
+#include "d2dm-service.h"\r
+#include "d2dm-service-interface.h"\r
+#include "d2dm-generated-code.h"\r
+\r
+static NetD2dm *d2dm_dbus_object;\r
+static Enabler *d2dm_activator_dbus_object;\r
+\r
+/* global list to care resource handle for each client */\r
+static GList *d2dm_dbus_client_list;\r
+static GMutex d2dm_dbus_client_list_mutex;\r
+\r
+typedef struct _d2dm_dbus_client_s {\r
+       gchar *bus_name;\r
+} d2dm_dbus_client_s;\r
+\r
+NetD2dm* d2dm_dbus_get_object()\r
+{\r
+       return d2dm_dbus_object;\r
+}\r
+\r
+static int _d2dm_dbus_client_list_cleanup(GList *client_list)\r
+{\r
+       d2dm_dbus_client_s *client;\r
+\r
+       d2dm_check_null_ret_error("client_list", client_list, FALSE);\r
+\r
+       client = client_list->data;\r
+\r
+       g_free(client->bus_name);\r
+       client->bus_name = NULL;\r
+       g_free(client);\r
+       g_list_free(client_list);\r
+\r
+       return D2DM_ERROR_NONE;\r
+}\r
+\r
+static int _d2dm_dbus_client_list_compare_bus_name(const void *a, const void *b)\r
+{\r
+       const d2dm_dbus_client_s *client = a;\r
+       return g_strcmp0(client->bus_name, b);\r
+}\r
+\r
+static inline GList* _d2dm_dbus_client_list_find_client(const gchar *owner)\r
+{\r
+       return g_list_find_custom(d2dm_dbus_client_list, owner,\r
+                       _d2dm_dbus_client_list_compare_bus_name);\r
+}\r
+\r
+static void _d2dm_dbus_name_owner_changed_cb(GDBusConnection *conn,\r
+               const gchar *sender_name,\r
+               const gchar *object_path,\r
+               const gchar *interface_name,\r
+               const gchar *signal_name,\r
+               GVariant *parameters,\r
+               gpointer user_data)\r
+{\r
+       int ret;\r
+       GList *client = NULL;\r
+       gchar *name, *old_owner, *new_owner;\r
+\r
+       NOTUSED(conn);\r
+       NOTUSED(sender_name);\r
+       NOTUSED(object_path);\r
+       NOTUSED(interface_name);\r
+       NOTUSED(signal_name);\r
+       NOTUSED(user_data);\r
+\r
+       g_variant_get(parameters, "(&s&s&s)", &name, &old_owner, &new_owner);\r
+\r
+       if (0 == strlen(new_owner)) {\r
+               g_mutex_lock(&d2dm_dbus_client_list_mutex);\r
+               client = _d2dm_dbus_client_list_find_client(old_owner);\r
+               if (client) { /* found bus name in our bus list */\r
+                       D2DM_LOGD("bus(%s) stopped", old_owner);\r
+                       d2dm_dbus_client_list = g_list_remove_link(d2dm_dbus_client_list, client);\r
+               }\r
+               g_mutex_unlock(&d2dm_dbus_client_list_mutex);\r
+\r
+               if (client) {\r
+                       ret = _d2dm_dbus_client_list_cleanup(client);\r
+                       if (D2DM_ERROR_NONE != ret)\r
+                               D2DM_LOGE("_d2dm_dbus_client_list_cleanup() Fail(%d)", ret);\r
+               }\r
+       }\r
+}\r
+\r
+static int _d2dm_dbus_subscribe_name_owner_changed(GDBusConnection *conn)\r
+{\r
+       unsigned int id;\r
+\r
+       id = g_dbus_connection_signal_subscribe(conn,\r
+                       "org.freedesktop.DBus", /* bus name */\r
+                       "org.freedesktop.DBus", /* interface */\r
+                       "NameOwnerChanged", /* member */\r
+                       "/org/freedesktop/DBus", /* path */\r
+                       NULL, /* arg0 */\r
+                       G_DBUS_SIGNAL_FLAGS_NONE,\r
+                       _d2dm_dbus_name_owner_changed_cb,\r
+                       NULL,\r
+                       NULL);\r
+       if (0 == id) {\r
+               D2DM_LOGE("g_dbus_connection_signal_subscribe() Fail");\r
+               return D2DM_ERROR_IO_ERROR;\r
+       }\r
+\r
+       return D2DM_ERROR_NONE;\r
+}\r
+\r
+\r
+static gboolean _d2dm_dbus_handle_find_peer(NetD2dm *object,\r
+               GDBusMethodInvocation *invocation,\r
+               gpointer user_data)\r
+{\r
+       int ret = D2DM_ERROR_NONE;\r
+       d2dm_service *service = (d2dm_service *)user_data;\r
+\r
+       d2dm_check_null_ret_error("service", service, FALSE);\r
+\r
+#if 0\r
+       ret = d2dm_request_find_peers(service);\r
+       if (D2DM_ERROR_NONE != ret)\r
+               D2DM_LOGE("Failed to wmesh_request_scan !");\r
+#endif\r
+       net_d2dm_complete_find_peer(object, invocation, ret);\r
+\r
+       return TRUE;\r
+}\r
+\r
+\r
+static void _d2dm_dbus_on_bus_acquired(GDBusConnection *conn, const gchar *name,\r
+               gpointer user_data)\r
+{\r
+       gboolean ret;\r
+       GError *error = NULL;\r
+       d2dm_service *service = (d2dm_service *)user_data;\r
+\r
+       NOTUSED(name);\r
+\r
+       d2dm_dbus_object = net_d2dm_skeleton_new();\r
+       if (NULL == d2dm_dbus_object) {\r
+               D2DM_LOGE("net_d2dm_skeleton_new() Fail");\r
+               return;\r
+       }\r
+\r
+       g_signal_connect(d2dm_dbus_object, "handle-find-peers",\r
+                       G_CALLBACK(_d2dm_dbus_handle_find_peer), service);\r
+\r
+       ret = g_dbus_interface_skeleton_export(G_DBUS_INTERFACE_SKELETON(d2dm_dbus_object),\r
+                       conn, D2DM_DBUS_OBJPATH, &error);\r
+       if (FALSE == ret) {\r
+               D2DM_LOGE("g_dbus_interface_skeleton_export() Fail(%s)", error->message);\r
+               g_error_free(error);\r
+       }\r
+\r
+       ret = _d2dm_dbus_subscribe_name_owner_changed(conn);\r
+       if (D2DM_ERROR_NONE != ret) {\r
+               D2DM_LOGE("_d2dm_dbus_subscribe_name_owner_changed() Fail(%d)", ret);\r
+               return;\r
+       }\r
+\r
+}\r
+\r
+static void _d2dm_dbus_on_name_lost(GDBusConnection *conn, const gchar *name,\r
+               gpointer user_data)\r
+{\r
+       NOTUSED(conn);\r
+       NOTUSED(user_data);\r
+\r
+       D2DM_LOGD("Lost the name %s", name);\r
+}\r
+\r
+static void _d2dm_dbus_on_name_acquired(GDBusConnection *conn, const gchar *name,\r
+               gpointer user_data)\r
+{\r
+       NOTUSED(conn);\r
+       NOTUSED(user_data);\r
+\r
+       D2DM_LOGD("Acquired the name %s", name);\r
+}\r
+\r
+static gboolean _d2dm_dbus_handle_enable(Enabler *object,\r
+               GDBusMethodInvocation *invocation,\r
+               gpointer user_data)\r
+{\r
+       int ret = D2DM_ERROR_NONE;\r
+       d2dm_service *service = (d2dm_service *)user_data;\r
+\r
+       __D2DM_LOG_FUNC_ENTER__;\r
+\r
+       /* Do API response first */\r
+       enabler_complete_enable(object, invocation, ret);\r
+       service->d2dm_activated = TRUE;\r
+\r
+       if (service->d2dp_activated) {\r
+               /* Enable d2d proxy */\r
+       }\r
+       service->d2dp_activated = TRUE;\r
+\r
+       /* Notify d2d-manager enabled */\r
+       net_d2dm_emit_proxy_enabled(d2dm_dbus_get_object(), ret);\r
+\r
+       __D2DM_LOG_FUNC_EXIT__;\r
+\r
+       return TRUE;\r
+}\r
+\r
+static gboolean _d2dm_dbus_handle_disable(Enabler *object,\r
+               GDBusMethodInvocation *invocation,\r
+               gpointer user_data)\r
+{\r
+       int ret = D2DM_ERROR_NONE;\r
+       d2dm_service *service = (d2dm_service *)user_data;\r
+\r
+       __D2DM_LOG_FUNC_ENTER__;\r
+\r
+       /* Make response first */\r
+       enabler_complete_disable(object, invocation, ret);\r
+\r
+       /* Terminate daemon */\r
+       d2dm_service_exit(service);\r
+\r
+       return TRUE;\r
+}\r
+\r
+static void _d2dm_dbus_on_activator_bus_acquired(GDBusConnection *conn,\r
+               const gchar *name, gpointer user_data)\r
+{\r
+       gboolean ret;\r
+       GError *error = NULL;\r
+       d2dm_service *service = (d2dm_service *)user_data;\r
+\r
+       NOTUSED(name);\r
+\r
+       __D2DM_LOG_FUNC_ENTER__;\r
+\r
+       d2dm_activator_dbus_object = enabler_skeleton_new();\r
+       if (NULL == d2dm_activator_dbus_object) {\r
+               D2DM_LOGE("enabler_skeleton_new() Fail");\r
+               return;\r
+       }\r
+\r
+       g_signal_connect(d2dm_activator_dbus_object, "handle-enable",\r
+                       G_CALLBACK(_d2dm_dbus_handle_enable), service);\r
+       g_signal_connect(d2dm_activator_dbus_object, "handle-disable",\r
+                       G_CALLBACK(_d2dm_dbus_handle_disable), service);\r
+\r
+       ret = g_dbus_interface_skeleton_export(\r
+                               G_DBUS_INTERFACE_SKELETON(d2dm_activator_dbus_object),\r
+                               conn, D2DM_DBUS_ENABLER_OBJPATH, &error);\r
+       if (FALSE == ret) {\r
+               D2DM_LOGE("g_dbus_interface_skeleton_export() Fail(%s)", error->message);\r
+               g_error_free(error);\r
+       }\r
+\r
+       __D2DM_LOG_FUNC_EXIT__;\r
+\r
+}\r
+\r
+static gboolean _d2dm_dbus_interface_init(d2dm_service *service)\r
+{\r
+       guint id;\r
+       guint activation_dbus_id;\r
+       d2dm_check_null_ret_error("service", service, FALSE);\r
+\r
+       id = g_bus_own_name(G_BUS_TYPE_SYSTEM,\r
+                       D2DM_DBUS_INTERFACE,\r
+                       G_BUS_NAME_OWNER_FLAGS_REPLACE,\r
+                       _d2dm_dbus_on_bus_acquired,\r
+                       _d2dm_dbus_on_name_acquired,\r
+                       _d2dm_dbus_on_name_lost,\r
+                       service,\r
+                       NULL);\r
+       if (0 == id) {\r
+               D2DM_LOGE("g_bus_own_name() Fail");\r
+               return FALSE;\r
+       }\r
+\r
+       /* Get D-Bus owner to activate mesh service daemon */\r
+       activation_dbus_id = g_bus_own_name(G_BUS_TYPE_SYSTEM,\r
+                       D2DM_DBUS_INTERFACE".enabler",\r
+                       G_BUS_NAME_OWNER_FLAGS_REPLACE,\r
+                       _d2dm_dbus_on_activator_bus_acquired,\r
+                       NULL,\r
+                       NULL,\r
+                       service,\r
+                       NULL);\r
+\r
+       service->dbus_id = id;\r
+       service->activation_dbus_id = activation_dbus_id;\r
+\r
+       /* Intiailze DBus sender */\r
+       d2dm_dbus_start(service);\r
+\r
+       return TRUE;\r
+}\r
+\r
+static void _d2dm_dbus_deinit(d2dm_service *service)\r
+{\r
+       d2dm_check_null_ret("service", service);\r
+\r
+       g_bus_unown_name(service->dbus_id);\r
+       g_bus_unown_name(service->activation_dbus_id);\r
+}\r
+\r
+gboolean d2dm_service_interface_init(d2dm_service *service)\r
+{\r
+       guint ret;\r
+       d2dm_check_null_ret_error("service", service, FALSE);\r
+\r
+       __D2DM_LOG_FUNC_ENTER__;\r
+\r
+       /* Initialize dbus interface */\r
+       ret = _d2dm_dbus_interface_init(service);\r
+       if (FALSE == ret) {\r
+               D2DM_LOGE("_d2dm_dbus_interface_init failed!!!");\r
+               return FALSE;\r
+       }\r
+\r
+       __D2DM_LOG_FUNC_EXIT__;\r
+\r
+       return TRUE;\r
+}\r
+\r
+void d2dm_service_interface_deinit(d2dm_service *service)\r
+{\r
+       d2dm_check_null_ret("service", service);\r
+\r
+       /* De-initialize dbus interface */\r
+       _d2dm_dbus_deinit(service);\r
+}\r
+\r
diff --git a/src/d2d-manager/d2dm-service-interface.h b/src/d2d-manager/d2dm-service-interface.h
new file mode 100644 (file)
index 0000000..343ccb5
--- /dev/null
@@ -0,0 +1,52 @@
+/*\r
+ * Network Configuration Module\r
+ *\r
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd. All rights reserved.\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ *\r
+ */\r
+#ifndef __D2DM_SERVICE_INTERFACE_H__\r
+#define __D2DM_SERVICE_INTERFACE_H__\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+/**< Mesh D-BUS service*/\r
+#define D2DM_DBUS_SERVICE "net.d2dm"\r
+\r
+/**< Mesh D-BUS service path */\r
+#define D2DM_DBUS_PATH "/net/d2dm"\r
+\r
+#ifndef D2DM_DBUS_INTERFACE\r
+#define D2DM_DBUS_INTERFACE "net.d2dm"\r
+#endif\r
+\r
+#ifndef D2DM_DBUS_OBJPATH\r
+#define D2DM_DBUS_OBJPATH "/net/d2dm"\r
+#endif\r
+\r
+#ifndef D2DM_DBUS_ENABLER_OBJPATH\r
+#define D2DM_DBUS_ENABLER_OBJPATH "/net/d2dm/enabler"\r
+#endif\r
+\r
+gboolean d2dm_service_interface_init(d2dm_service *service);\r
+void d2dm_service_interface_deinit(d2dm_service *service);\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#endif /* __D2DM_SERVICE_INTERFACE_H__ */\r
+\r
diff --git a/src/d2d-manager/d2dm-service.c b/src/d2d-manager/d2dm-service.c
new file mode 100644 (file)
index 0000000..6c3cdbf
--- /dev/null
@@ -0,0 +1,71 @@
+/*\r
+ * Network Configuration Module\r
+ *\r
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd. All rights reserved.\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ *\r
+ */\r
+#include <glib.h>\r
+\r
+#include "d2dm.h"\r
+#include "d2dm-log.h"\r
+#include "d2dm-util.h"\r
+\r
+d2dm_service *d2dm_service_new()\r
+{\r
+       d2dm_service *service;\r
+\r
+       service = g_malloc0(sizeof(struct _d2d_service));\r
+\r
+       /* Create g-main loop */\r
+       service->main_loop = g_main_loop_new(NULL, FALSE);\r
+       if (G_UNLIKELY(NULL == service->main_loop)) {\r
+               D2DM_LOGE("g-main loop creation failed!!!");\r
+               g_free(service);\r
+               return NULL;\r
+       }\r
+\r
+       return service;\r
+}\r
+\r
+void d2dm_service_free(d2dm_service *service)\r
+{\r
+       d2dm_check_null_ret("service", service);\r
+\r
+       /* Unref 'g-main loop' */\r
+       if (service->main_loop)\r
+               g_main_loop_unref(service->main_loop);\r
+\r
+       g_free(service);\r
+}\r
+\r
+gboolean d2dm_service_run(d2dm_service *service)\r
+{\r
+       d2dm_check_null_ret_error("service", service, FALSE);\r
+       d2dm_check_null_ret_error("service->main_loop", service->main_loop, FALSE);\r
+\r
+       g_main_loop_run(service->main_loop);\r
+\r
+       return TRUE;\r
+}\r
+\r
+gboolean d2dm_service_exit(d2dm_service *service)\r
+{\r
+       d2dm_check_null_ret_error("service", service, FALSE);\r
+       d2dm_check_null_ret_error("service->main_loop", service->main_loop, FALSE);\r
+\r
+       g_main_loop_quit(service->main_loop);\r
+\r
+       return TRUE;\r
+}\r
diff --git a/src/d2d-manager/d2dm-service.h b/src/d2d-manager/d2dm-service.h
new file mode 100644 (file)
index 0000000..71230c9
--- /dev/null
@@ -0,0 +1,36 @@
+/*\r
+ * Network Configuration Module\r
+ *\r
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd. All rights reserved.\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ *\r
+ */\r
+#ifndef __D2DM_SERVICE_H__\r
+#define __D2DM_SERVICE_H__\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+d2dm_service *d2dm_service_new();\r
+void d2dm_service_free(d2dm_service *service);\r
+gboolean d2dm_service_run(d2dm_service *service);\r
+gboolean d2dm_service_exit(d2dm_service *service);\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#endif /* __D2DM_SERVICE_H__ */\r
+\r
similarity index 76%
rename from src/include/d2d-common.h
rename to src/d2d-manager/d2dm-util.h
index 5cee265..db7537c 100644 (file)
  * limitations under the License.
  *
  */
-#ifndef __D2D_COMMON_H__
-#define __D2D_COMMON_H__
+#ifndef __D2DM_UTIL_H__
+#define __D2DM_UTIL_H__
 
 #include <glib.h>
 #include <unistd.h>
 #include <gio/gio.h>
 
+#include "d2dm-log.h"
+
 #define NOTUSED(var) (var = var)
 
-#define d2dd_check_null_ret_error(name, value, error) do { \
+#define d2dm_check_null_ret_error(name, value, error) do { \
                if (G_UNLIKELY(NULL == (value))) { \
-                                       WMESH_LOGE("%s is NULL", name); \
+                                       D2DM_LOGE("%s is NULL", name); \
                                        return error; \
                                } \
 } while (FALSE)
 
-#define d2dd_check_null_ret(name, value) do { \
+#define d2dm_check_null_ret(name, value) do { \
                if (G_UNLIKELY(NULL == (value))) { \
-                                       WMESH_LOGE("%s is NULL", name); \
+                                       D2DM_LOGE("%s is NULL", name); \
                                        return; \
                                } \
 } while (FALSE)
 
-#endif /* __D2D_COMMON_H__ */
+#endif /* __D2DM_UTIL_H__ */
similarity index 87%
rename from src/d2d-manager/d2d-manager.c
rename to src/d2d-manager/d2dm.c
index 2edd988..0b7d099 100644 (file)
 
 #include <glib.h>
 
-#include "d2d-common.h"
-#include "d2d-manager.h"
-#include "d2d-manager-log.h"
+#include "d2dm.h"
+#include "d2dm-log.h"
+#include "d2dm-util.h"
+#include "d2dm-service.h"
 
 /**< d2d-manager service */
-d2d_service *d2dsvc;
+d2dm_service *d2dsvc;
 
 int main(int argc, char *argv[])
 {
-       d2d_service *service = NULL;
+       d2dm_service *service = NULL;
        int ret_code = 0;
        gboolean ret;
 
@@ -49,19 +50,18 @@ int main(int argc, char *argv[])
        NOTUSED(argv);
 
        D2DM_LOGI("service mainloop start");
-#if 0
+
        /* Create d2d-manager service */
        d2dsvc = service = d2dm_service_new();
 
        /* Initialize d2d-manager service interface layer */
        ret = d2dm_service_interface_init(service);
        if (G_UNLIKELY(FALSE == ret)) {
-               D2DM_LOGE("wmeshd_service_interface_init failed!");
+               D2DM_LOGE("Service interface init. failed!");
                goto END;
        }
-
        /* Run mesh service */
-       ret = wmeshd_service_run(service);
+       ret = d2dm_service_run(service);
        if (G_UNLIKELY(FALSE == ret)) {
                D2DM_LOGE("Run service failed!");
                ret_code = EXIT_FAILURE;
@@ -72,7 +72,7 @@ END:
        d2dm_service_interface_deinit(service);
        d2dm_service_free(service);
        d2dsvc = NULL;
-#endif
+
        __D2DM_LOG_FUNC_EXIT__;
        return 0;
 }
similarity index 67%
rename from src/d2d-manager/d2d-manager.h
rename to src/d2d-manager/d2dm.h
index 9f907be..4a4abad 100644 (file)
 \r
 /**< Internal error code with mesh daemon. It should be matched with API side */\r
 typedef enum {\r
-       D2D_ERROR_NONE = 0, /**< Successful */\r
-       D2D_ERROR_IO_ERROR, /**< I/O error */\r
-       D2D_ERROR_NO_DATA, /**< Data not exists */\r
-       D2D_ERROR_OUT_OF_MEMORY, /**< out of memory */\r
-       D2D_ERROR_OPERATION_FAILED, /**< operation failed */\r
-       D2D_ERROR_INVALID_PARAMETER, /**< Invalid parameter */\r
-       D2D_ERROR_ALREADY_REGISTERED, /**< Request already registered */\r
-       D2D_ERROR_IN_PROGRESS /**< operation is in progress */\r
-} meshd_error_e;\r
+       D2DM_ERROR_NONE = 0, /**< Successful */\r
+       D2DM_ERROR_IO_ERROR, /**< I/O error */\r
+       D2DM_ERROR_NO_DATA, /**< Data not exists */\r
+       D2DM_ERROR_OUT_OF_MEMORY, /**< out of memory */\r
+       D2DM_ERROR_OPERATION_FAILED, /**< operation failed */\r
+       D2DM_ERROR_INVALID_PARAMETER, /**< Invalid parameter */\r
+       D2DM_ERROR_ALREADY_REGISTERED, /**< Request already registered */\r
+       D2DM_ERROR_IN_PROGRESS /**< operation is in progress */\r
+} d2dm_error_e;\r
 \r
 /**< mesh service structure */\r
 typedef struct _d2d_service {\r
@@ -45,6 +45,9 @@ typedef struct _d2d_service {
        GCancellable *ca; /**< Cancellable object for D-Bus call (Daemon->other) */\r
        GList *dbus_sub_ids; /**< The list of subscribed signals */\r
 \r
-} d2d_service;\r
+       gboolean d2dp_activated; /**< Whetehr d2d-proxy enabled or not */\r
+       gboolean d2dm_activated; /**< Whether d2d-manager enabled or not */\r
+\r
+} d2dm_service;\r
 \r
 #endif /* __D2D_MANAGER_H__ */\r
diff --git a/src/d2d-manager/introspection/.d2d-generated-code.h.swp b/src/d2d-manager/introspection/.d2d-generated-code.h.swp
new file mode 100644 (file)
index 0000000..d6676cb
Binary files /dev/null and b/src/d2d-manager/introspection/.d2d-generated-code.h.swp differ
diff --git a/src/d2d-manager/introspection/d2dm.xml b/src/d2d-manager/introspection/d2dm.xml
new file mode 100644 (file)
index 0000000..9184d21
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" ?>\r
+\r
+<!DOCTYPE node PUBLIC\r
+       "-//freedesktop//DTD D-Bus Object Introspection 1.0//EN"\r
+       "http://standards.freedesktop.org/dbus/1.0/introspect.dtd">\r
+\r
+<node>\r
+       <interface name="net.d2dm">\r
+               <!-- Method definitions -->\r
+               <method name="find_peer">\r
+                       <arg type="i" name="result" direction="out"/>\r
+               </method>\r
+\r
+               <!-- Signal (D-Bus) definitions -->\r
+               <signal name="proxy_enabled">\r
+                       <arg type="i" name="result" direction="out"/>\r
+               </signal>\r
+               <signal name="find_peer_done">\r
+               </signal>\r
+       </interface>\r
+</node>\r
similarity index 91%
rename from src/introspection/manager.xml
rename to src/d2d-manager/introspection/enabler.xml
index 3c5c658..05c396b 100644 (file)
@@ -5,7 +5,7 @@
        "http://standards.freedesktop.org/dbus/1.0/introspect.dtd">
 
 <node>
-       <interface name="net.d2d.manager">
+       <interface name="net.d2dm.enabler">
                <!-- Method definitions -->
                <method name="enable">
                        <arg type="i" name="result" direction="out"/>
diff --git a/src/d2d-manager/introspection/gen.sh b/src/d2d-manager/introspection/gen.sh
new file mode 100755 (executable)
index 0000000..7017da9
--- /dev/null
@@ -0,0 +1,6 @@
+gdbus-codegen --interface-prefix net.d2dm. \
+        --generate-c-code d2dm-generated-code \
+        --c-generate-object-manager \
+        --generate-docbook generated-docs \
+        d2dm.xml \
+        enabler.xml
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
diff --git a/src/introspection/d2d-manager.c b/src/introspection/d2d-manager.c
deleted file mode 100644 (file)
index 2fb6bdb..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <glib.h>
-
-#include "mesh.h"
-#include "mesh-log.h"
-#include "mesh-util.h"
-#include "mesh-service.h"
-#include "mesh-service-interface.h"
-
-/**< mesh service */
-+mesh_service *meshsvc;
-
-int main(int argc, char *argv[])
-{
-       mesh_service *service = NULL;
-       int ret_code = 0;
-       gboolean ret;
-
-       __MESH_LOG_FUNC_ENTER__;
-
-#if !GLIB_CHECK_VERSION(2, 32, 0)
-       if (!g_thread_supported())
-#if !GLIB_CHECK_VERSION(2, 36, 0)
-       g_type_init();
-#endif
-       NOTUSED(argc);
-       NOTUSED(argv);
-
-       MESH_LOGI("service mainloop start");
-
-       /* Create mesh service */
-       meshsvc = service = meshd_service_new();
-
-       /* Initialize mesh service interface layer */
-       ret = meshd_service_interface_init(service);
-       if (G_UNLIKELY(FALSE == ret)) {
-               MESH_LOGE("zigbee_service_interface_init failed!");
-               goto END;
-       }
-
-       /* Run mesh service */
-       ret = meshd_service_run(service);
-       if (G_UNLIKELY(FALSE == ret)) {
-               MESH_LOGE("Run service failed!");
-               ret_code = EXIT_FAILURE;
-       }
-
-       /* Free mesh service */
-       meshd_service_free(service);
-       meshsvc = NULL;
-
-       __MESH_LOG_FUNC_EXIT__;
-       return 0;
-}
diff --git a/src/introspection/gen.sh b/src/introspection/gen.sh
deleted file mode 100755 (executable)
index 027a2bf..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-gdbus-codegen --interface-prefix net.d2d. \
-        --generate-c-code d2d-generated-code \
-        --c-generate-object-manager \
-        --generate-docbook generated-docs \
-        manager.xml
diff --git a/src/subownerclient/CMakeLists.txt b/src/subownerclient/CMakeLists.txt
deleted file mode 100644 (file)
index ccc4e73..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(d2d-manager-daemon C CXX)
-
-FILE(GLOB SRCS *)
-
-include_directories(${CMAKE_SOURCE_DIR}/src/subownerclient)
-include_directories(${CMAKE_SOURCE_DIR}/src/subownerclient/include)
-
-INCLUDE(FindPkgConfig)
-pkg_check_modules(subownerclient_pkgs REQUIRED glib-2.0 gio-2.0 gio-unix-2.0 dlog dbus-1 iotivity uuid gmock aul)
-
-MESSAGE(" - Adding external C flags")
-FOREACH(flag ${subownerclient_pkgs_CFLAGS})
-        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-       SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} ${flag}")
-ENDFOREACH(flag)
-
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fpic")
-SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} -std=gnu++11 -fPIC -fvisibility=hidden")
-SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
-
-ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${subownerclient_pkgs_LDFLAGS})
-INSTALL(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin)