Example plugin conforms to libsyscommon interface change 19/322619/1 accepted/tizen/9.0/unified/20250415.165853
authorMichal Bloch <m.bloch@samsung.com>
Tue, 8 Apr 2025 18:11:52 +0000 (20:11 +0200)
committerMichal Bloch <m.bloch@samsung.com>
Fri, 11 Apr 2025 11:46:27 +0000 (13:46 +0200)
Change-Id: I5a5e8cb59dd16c3d287b5ed6584a00e8def63e2e

tests/plugin_example/empty_plugin.cpp

index d5f4f993be82bc9231041b837e8520f7486b33e5..596255822141d09debd6f06de46ec036f1cb5620 100644 (file)
@@ -65,18 +65,27 @@ static int sessiond_subsession_removed(int uid, const char *subsession)
        return 0;
 }
 
-
-static syscommon_plugin_backend_sessiond_funcs plugin_funcs = {
-       .sessiond_initialize = sessiond_initialize,
-       .sessiond_deinitialize = sessiond_deinitialize,
-       .sessiond_subsession_changed = sessiond_subsession_changed,
-       .sessiond_subsession_added = sessiond_subsession_added,
-       .sessiond_subsession_removed = sessiond_subsession_removed,
-};
-
 static int sessiond_init(void **data)
 {
-       *data = (void *)&plugin_funcs;
+       if (!data) {
+               LOGE("Invalid parameter, data is NULL");
+               return -EINVAL;
+       }
+
+       syscommon_plugin_backend_sessiond_funcs *const plugin_funcs = *((syscommon_plugin_backend_sessiond_funcs **)data);
+       if (!plugin_funcs) {
+               LOGE("Invalid parameter, *data (plugin_funcs) is NULL");
+               return -EINVAL;
+       }
+
+       *plugin_funcs = (syscommon_plugin_backend_sessiond_funcs) {
+               .sessiond_initialize = sessiond_initialize,
+               .sessiond_deinitialize = sessiond_deinitialize,
+               .sessiond_subsession_changed = sessiond_subsession_changed,
+               .sessiond_subsession_added = sessiond_subsession_added,
+               .sessiond_subsession_removed = sessiond_subsession_removed,
+       };
+
        return 0;
 }