SysAssert(__pLockManagerImpl == null);
__pLockManagerImpl = _LockManagerImpl::GetInstance();
-
- SysAssertf(__pLockManagerImpl, "Failed to construct _LockManagerImpl!!");
- SysLog(NID_SHELL, "Successed.");
+ SysTryReturnResult(NID_SHELL, __pLockManagerImpl, E_SYSTEM, "[%s] Failed to construct _LockManagerImpl!!.");
+ SysLog(NID_SHELL, "LockManager is constructed.");
return E_SUCCESS;
}
#include <vconf.h>
#include <FBaseLog.h>
#include <FBaseSysLog.h>
+#include <FBaseRt.h>
#include <FShell_LockManagerImpl.h>
#include <FShell_LockManagerProxy.h>
result
_LockManagerImpl::Construct(void)
{
- result r = E_SUCCESS;
+ std::unique_ptr< _LockManagerProxy > pLockManagerProxy(new (std::nothrow) _LockManagerProxy);
+ SysTryReturnResult(NID_APP, pLockManagerProxy, E_OUT_OF_MEMORY, "The memory is insufficient.");
- std::unique_ptr< _LockManagerProxy > pLockManager(new (std::nothrow) _LockManagerProxy);
- SysTryReturnResult(NID_APP, pLockManager, E_OUT_OF_MEMORY, "The memory is insufficient.");
+ const int MAX_TRY_COUNT = 5;
+ const int TRY_SLEEP_TIME = 250;
- r = pLockManager->Construct();
- SysTryReturnResult(NID_APP, !IsFailed(r), r, "Propagating.");
+ int count = 0;
+ while (true)
+ {
+ result r = pLockManagerProxy->Construct();
+ if (r == E_SUCCESS)
+ {
+ SysLog(NID_APP, "Succeeded in connecting lock manager service.");
+ break;
+ }
+
+ SysTryReturn(NID_APP, count < MAX_TRY_COUNT, E_SYSTEM, r, "[%s] Failed to connect lock manager service.", GetErrorMessage(r));
+
+ count++;
+ Tizen::Base::Runtime::Thread::Sleep(TRY_SLEEP_TIME);
+ }
- __pLockManager = pLockManager.release();
+ __pLockManager = pLockManagerProxy.release();
return E_SUCCESS;
}