void
_SettingClient::InitSettingClient(void)
{
- __pSettingClient = new (std::nothrow) _SettingClient();
- SysTryReturn(NID_SYS, __pSettingClient, , GetLastResult(), "It is failed to create SettingClient by [%s].", GetErrorMessage(GetLastResult()));
+ unique_ptr<_SettingClient> pSettingClient(new (std::nothrow) _SettingClient());
+ SysTryReturn(NID_SYS, pSettingClient, ,E_OUT_OF_MEMORY, "It is failed to create SettingClient by [E_OUT_OF_MEMORY].");
+
+ result r = pSettingClient->Construct();
+ SysTryReturn(NID_SYS, r == E_SUCCESS, , r, "It is failed to create SettingClient by [%s].", GetErrorMessage(r));
+
+ __pSettingClient = pSettingClient.release();
atexit(DestroySettingClient);
}
_SettingClient::DestroySettingClient(void)
{
delete __pSettingClient;
+ __pSettingClient = null;
}
_SettingClient*
, __pSettingEvent(null)
, __pSettingEventForInternal(null)
{
- result r = E_SUCCESS;
- static String serviceId(SETTING_SERVICE_ID);
-
- unique_ptr<_SettingEvent> settingEvent(new(nothrow) _SettingEvent());
- unique_ptr<_SettingEvent> settingEventForInternal(new(nothrow) _SettingEvent());
- unique_ptr<_IpcClient> pIpcClient(new (nothrow) _IpcClient());
-
- r = pIpcClient->Construct(serviceId, this);
- SysTryCatch(NID_SYS, r == E_SUCCESS, r = E_SYSTEM, r, "It is failed to construct IPC client.");
- r = __asyncEventList.Construct();
- SysTryCatch(NID_SYS, r == E_SUCCESS, r = E_SYSTEM, r, "It is failed to construct asyn event list.");
-
- SysTryCatch(NID_SYS, settingEvent.get() != null && settingEventForInternal.get() != null, r = E_SYSTEM, r, "It is failed to create event instances.");
-
-CATCH:
- if(r == E_SUCCESS)
- {
- __pSettingEvent = settingEvent.release();
- __pSettingEventForInternal = settingEventForInternal.release();
- __pIpcClient = pIpcClient.release();
- }
- SetLastResult(r);
}
_SettingClient::~_SettingClient()
}
}
+result
+_SettingClient::Construct(void)
+{
+ result r = E_SUCCESS;
+
+ static String serviceId(SETTING_SERVICE_ID);
+
+ unique_ptr<_SettingEvent> settingEvent(new(nothrow) _SettingEvent());
+ unique_ptr<_SettingEvent> settingEventForInternal(new(nothrow) _SettingEvent());
+ unique_ptr<_IpcClient> pIpcClient(new (nothrow) _IpcClient());
+
+ r = pIpcClient->Construct(serviceId, this);
+ SysTryReturnResult(NID_SYS, r == E_SUCCESS, r, "It is failed to construct IPC client.");
+ r = __asyncEventList.Construct();
+ SysTryReturnResult(NID_SYS, r == E_SUCCESS, r, "It is failed to construct asyn event list.");
+
+ SysTryReturnResult(NID_SYS, settingEvent != null && settingEventForInternal != null, r, "It is failed to create event instances.");
+
+ __pSettingEvent = settingEvent.release();
+ __pSettingEventForInternal = settingEventForInternal.release();
+ __pIpcClient = pIpcClient.release();
+ return E_SUCCESS;
+}
+
void
_SettingClient::OnIpcServerDisconnected(_IpcClient& client)
{