From: Hokwon Song Date: Thu, 26 Sep 2013 01:39:03 +0000 (+0900) Subject: Refactory SettingService. X-Git-Tag: submit/tizen_2.2/20131107.061919~19^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=607ef0c1ad3da3ea6278761732e22c9038d138bf;p=framework%2Fosp%2Fcommon-service.git Refactory SettingService. Change-Id: Ic4c96fb49b4c7d68b22d6b4d12edac6eedabf295 Signed-off-by: Hokwon Song --- diff --git a/src/system/FSys_SettingService.cpp b/src/system/FSys_SettingService.cpp index 879c09f..1be84e5 100644 --- a/src/system/FSys_SettingService.cpp +++ b/src/system/FSys_SettingService.cpp @@ -82,47 +82,59 @@ _SettingService::_SettingService() , __eventList(SingleObjectDeleter) , __eventListForInternal(SingleObjectDeleter) { - result r = E_SUCCESS; +} + +_SettingService::~_SettingService() +{ + __pSettingInfo->RemoveSettingEventListener(*this); + __pSettingInfo = null; + result r = __ipcServer.Stop(); + __responseMessage.RemoveAll(true); + SysTryReturnVoidResult(NID_SYS, r == E_SUCCESS, r, "It is failed to stop IPC server."); +} + + +result +_SettingService::Construct(void) +{ + result r = E_SUCCESS; - r = __ipcServer.Construct(__serviceId, *this, true); - SysTryReturnVoidResult(NID_SYS, r == E_SUCCESS, r, "It is failed to construct IPC server."); + r = __ipcServer.Construct(__serviceId, *this, true); + SysTryReturnResult(NID_SYS, r == E_SUCCESS, r, "It is failed to construct IPC server."); - __pSettingInfo = _SettingInfo::GetInstance(); - SysTryCatch(NID_SYS, __pSettingInfo != null, r = E_SYSTEM, E_SYSTEM, "It is failed to get instance of _SettingInfo."); + __pSettingInfo = _SettingInfo::GetInstance(); + SysTryCatch(NID_SYS, __pSettingInfo != null, r = E_SYSTEM, E_SYSTEM, "It is failed to get instance of _SettingInfo."); - __pSettingInfo->AddSettingEventListener(*this); - r = __asyncList.Construct(); - SysTryCatch(NID_SYS, r == E_SUCCESS, , r, "It is failed to construct async list."); + __pSettingInfo->AddSettingEventListener(*this); + r = __asyncList.Construct(); + SysTryCatch(NID_SYS, r == E_SUCCESS, , r, "It is failed to construct async list."); - r = __eventList.Construct(); - SysTryCatch(NID_SYS, r == E_SUCCESS, , r, "It is failed to construct event list."); + r = __eventList.Construct(); + SysTryCatch(NID_SYS, r == E_SUCCESS, , r, "It is failed to construct event list."); - r = __eventListForInternal.Construct(); - SysTryCatch(NID_SYS, r == E_SUCCESS, , r, "It is failed to construct event list for internal."); + r = __eventListForInternal.Construct(); + SysTryCatch(NID_SYS, r == E_SUCCESS, , r, "It is failed to construct event list for internal."); - r = __ipcServer.Start(); - SysTryCatch(NID_SYS, r == E_SUCCESS, , r, "It is failed to start IPC server."); + r = __ipcServer.Start(); + SysTryCatch(NID_SYS, r == E_SUCCESS, , r, "It is failed to start IPC server."); - r = __responseMessage.Construct(); - SysTryCatch(NID_SYS, r == E_SUCCESS, , r, "It is failed to create response message container."); + r = __responseMessage.Construct(); + SysTryCatch(NID_SYS, r == E_SUCCESS, , r, "It is failed to create response message container."); CATCH: - if(r != E_SUCCESS) - { - __pSettingInfo = null; - SysLogException(NID_SYS, r, "It is failed to construct _SettingService."); - __ipcServer.Stop(); - } + if(r != E_SUCCESS) + { + if (__pSettingInfo != null) + { + __pSettingInfo->RemoveSettingEventListener(*this); + __pSettingInfo = null; + } + SysLogException(NID_SYS, r, "It is failed to construct _SettingService."); + __ipcServer.Stop(); + } + return r; } -_SettingService::~_SettingService() -{ - __pSettingInfo->RemoveSettingEventListener(*this); - __pSettingInfo = null; - result r = __ipcServer.Stop(); - __responseMessage.RemoveAll(true); - SysTryReturnVoidResult(NID_SYS, r == E_SUCCESS, r, "It is failed to stop IPC server."); -} _SettingService* _SettingService::GetInstance(void) @@ -137,11 +149,12 @@ _SettingService::GetInstance(void) void _SettingService::InitSingleton(void) -{ - _SettingService* pSettingService = new (nothrow) _SettingService(); +{ + std::unique_ptr<_SettingService> pSettingService(new (nothrow) _SettingService()); SysTryReturnVoidResult(NID_SYS, pSettingService != null, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY)); - - __pSettingService = pSettingService; + result r = pSettingService->Construct(); + SysTryReturnVoidResult(NID_SYS, r == E_SUCCESS, r, "It is failed to init Setting service [%s].", GetErrorMessage(r)); + __pSettingService = pSettingService.release(); atexit(DestroySingleton); } diff --git a/src/system/FSys_SettingService.h b/src/system/FSys_SettingService.h index bbf2aa4..1262ec5 100644 --- a/src/system/FSys_SettingService.h +++ b/src/system/FSys_SettingService.h @@ -49,13 +49,13 @@ class _SettingService , public Tizen::System::ISettingEventListener { private: - _SettingService(); - ~_SettingService(); - static void InitSingleton(void); static void DestroySingleton(void); public: + _SettingService(); + ~_SettingService(); + result Construct(void); static _SettingService* GetInstance(void); private: