Modify UNITED_SERVICE_SHUTDOWN interface
authorChanggyu Choi <changyu.choi@samsung.com>
Thu, 10 Apr 2025 06:12:57 +0000 (15:12 +0900)
committerChanggyu Choi <changyu.choi@samsung.com>
Thu, 10 Apr 2025 06:12:57 +0000 (15:12 +0900)
service_unregister() method needs name parameter.
So, UNITED_SERVICE_SHUTDOWN interface should include a name paremeter.

Signed-off-by: Changgyu Choi <changyu.choi@samsung.com>
src/service_assembly.cc
src/service_assembly.hh
src/service_loader.cc

index fce967b0459225225402fdfffb6a34f7be83946c..4f3d60a320ed0fdd1c4304bf81913f16fde23c8c 100644 (file)
@@ -64,10 +64,10 @@ void ServiceAssembly::ModuleInit(const std::string& name) {
   }
 }
 
-void ServiceAssembly::ModuleShutdown() {
+void ServiceAssembly::ModuleShutdown(const std::string& name) {
   try {
-    auto shutdown_func = lib_opener_->Bind<void (*)()>(kUnitedServiceShutdown);
-    shutdown_func();
+    auto shutdown_func = lib_opener_->Bind<void (*)(const char*)>(kUnitedServiceShutdown);
+    shutdown_func(name.c_str());
   } catch (const std::exception& e) {
     _E("Error=%s", e.what());
     THROW(SERVICE_ERROR_NO_SUCH_SERVICE);
index 6424a596d2108475113e66b5bf60a8eaf0d596c8..2b4a47470c0ed712629e2a713d0e8eecfe0ca3f6 100644 (file)
@@ -34,7 +34,7 @@ class ServiceAssembly {
   void Unload();
 
   void ModuleInit(const std::string& name);
-  void ModuleShutdown();
+  void ModuleShutdown(const std::string& name);
 
  private:
   std::string assembly_path_;
@@ -43,4 +43,4 @@ class ServiceAssembly {
 
 }  // namespace tizen_base
 
-#endif  // SERVICE_ASSEMBLY_HH_
\ No newline at end of file
+#endif  // SERVICE_ASSEMBLY_HH_
index 0d6a2a8e06dbeff7b09728c6efa41f86c906faf4..a361766b0f34fcbec528fbd5a90759224f9807b3 100644 (file)
@@ -241,7 +241,7 @@ void ServiceLoader::UnloadService(const std::string& name) {
   if (!assembly->IsLoaded()) THROW(SERVICE_ERROR_INVALID_CONTEXT);
 
   try {
-    assembly->ModuleShutdown();
+    assembly->ModuleShutdown(name.c_str());
     assembly->Unload();
   } catch (const Exception& e) {
     _E("Error=%s", e.what());