#undef EXPORT
#define EXPORT __attribute__((visibility("default")))
+service_h __service;
+
static void ServiceCreateCb(service_h service, void* user_data) {
+ __service = service;
// ...
}
static void ServiceDestroyCb(service_h service, void* user_data) {
+ __service = nullptr;
// ...
}
return 0;
}
-extern "C" void USD_MOD_SHUTDOWN(void) {
+extern "C" void USD_MOD_SHUTDOWN(const char* name) {
+ LOGD("USD_MOD_SHUTDOWN");
+ service_unregister(name);
// ...
}
* @endcode
static char* __name;
-extern "C" service_h USD_MOD_INIT(const char* name) {
+extern "C" int USD_MOD_INIT(const char* name) {
LOGD("USD_MOD_INIT. name=%s", name);
- __name = strdup(name);
// ...
- return service;
+ return 0;
}
-extern "C" void USD_MOD_SHUTDOWN(void) {
+extern "C" void USD_MOD_SHUTDOWN(const char* name) {
LOGD("USD_MOD_SHUTDOWN");
- service_unregister(__name);
- free(__name);
- __name = nullptr;
+ service_unregister(name);
+ // ...
}
* @endcode
*/
// ...
}
-extern "C" service_h USD_MOD_INIT(const char* name) {
+extern "C" int USD_MOD_INIT(const char* name) {
LOGD("USD_MOD_INIT. name=%s", name);
// ...
- return service;
+ return 0;
}
-extern "C" void USD_MOD_SHUTDOWN(void) {
+extern "C" void USD_MOD_SHUTDOWN(const char* name) {
LOGD("USD_MOD_SHUTDOWN");
- if (__service) {
- service_quit(__service);
- __service = nullptr;
- }
+ service_unregister(name);
+ // ...
}
* @endcode
*/
bundle_free(envelope);
}
-extern "C" service_h USD_MOD_INIT(const char* name) {
+extern "C" int USD_MOD_INIT(const char* name) {
LOGD("USD_MOD_INIT. name=%s", name);
// ...
- return service;
+ return 0;
}
-extern "C" void USD_MOD_SHUTDOWN(void) {
+extern "C" void USD_MOD_SHUTDOWN(const char* name) {
+ LOGD("USD_MOD_SHUTDOWN");
+ service_unregister(name);
// ...
}
* @endcode