, __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)
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);
}