#include <FBaseSysLog.h>
#include <FBaseRtIEventArg.h>
#include <FBase_NativeError.h>
-#include <FIoIMmcStorageMountListener.h>
-#include <FIoIMmcStorageFormatListener.h>
+#include "FIoIMmcStorageMountListener.h"
+#include "FIoIMmcStorageFormatListener.h"
#include "FIo_MmcStorageManagerImpl.h"
#include "FIo_MmcStorageManagerProxy.h"
_MmcStorageManagerImpl::~_MmcStorageManagerImpl(void)
{
- delete __pMmcStorageManagerProxy;
delete __pMountEvent;
delete __pFormatEvent;
}
result
_MmcStorageManagerImpl::Construct(void)
{
- result r = E_SUCCESS;
-
- unique_ptr<_MmcStorageManagerProxy> pMmcStorageManagerProxy(new (std::nothrow) _MmcStorageManagerProxy);
- SysTryReturnResult(NID_IO, pMmcStorageManagerProxy != null, E_OUT_OF_MEMORY, "The memory is insufficient");
-
- r = pMmcStorageManagerProxy->Construct(this);
- SysTryReturnResult(NID_IO, r == E_SUCCESS, r, "__pMmcStorageManagerProxy->Construct() failed.");
-
unique_ptr<_MountEvent> pMountEvent(new (std::nothrow) _MountEvent);
SysTryReturnResult(NID_IO, pMountEvent != null, E_OUT_OF_MEMORY, "The memory is insufficient.");
unique_ptr<_FormatEvent> pFormatEvent(new (std::nothrow) _FormatEvent);
SysTryReturnResult(NID_IO, pFormatEvent != null, E_OUT_OF_MEMORY, "The memory is insufficient.");
- __pMmcStorageManagerProxy = pMmcStorageManagerProxy.release();
-
__pMountEvent = pMountEvent.release();
__pFormatEvent = pFormatEvent.release();
static _MmcStorageManagerImpl* pImpl = null;
if (pImpl == null)
{
- unique_ptr<_MmcStorageManagerImpl> p(new (std::nothrow) _MmcStorageManagerImpl);
- SysTryReturn(NID_IO, p != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient.");
+ unique_ptr<_MmcStorageManagerImpl> pMmcStorageManagerImpl(new (std::nothrow) _MmcStorageManagerImpl);
+ SysTryReturn(NID_IO, pMmcStorageManagerImpl != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient.");
- result r = p->Construct();
- SysTryReturn(NID_IO, r == E_SUCCESS, null, E_SYSTEM, "[E_SYSTEM] Failed to initialize channel.");
+ result r = pMmcStorageManagerImpl->Construct();
+ SysTryReturn(NID_IO, !IsFailed(r), null, r, "[%s] Propagating to caller...", GetErrorMessage(r));
- pImpl = p.release();
+ pImpl = pMmcStorageManagerImpl.release();
}
return pImpl;
-
}
result
_MmcStorageManagerImpl::Mount(void)
{
+ if (__pMmcStorageManagerProxy == null)
+ {
+ __pMmcStorageManagerProxy = _MmcStorageManagerProxy::GetInstance();
+ SysTryReturnResult(NID_IO, __pMmcStorageManagerProxy != null, E_SERVICE_BUSY, "Failed to get IPC proxy instance.");
+ __pMmcStorageManagerProxy->SetMmcStorageManagerListener(this);
+ }
return __pMmcStorageManagerProxy->Mount();
}
result
_MmcStorageManagerImpl::Unmount(void)
{
+ if (__pMmcStorageManagerProxy == null)
+ {
+ __pMmcStorageManagerProxy = _MmcStorageManagerProxy::GetInstance();
+ SysTryReturnResult(NID_IO, __pMmcStorageManagerProxy != null, E_SERVICE_BUSY, "Failed to get IPC proxy instance.");
+ __pMmcStorageManagerProxy->SetMmcStorageManagerListener(this);
+ }
return __pMmcStorageManagerProxy->Unmount();
}
result
_MmcStorageManagerImpl::Format(void)
{
+ if (__pMmcStorageManagerProxy == null)
+ {
+ __pMmcStorageManagerProxy = _MmcStorageManagerProxy::GetInstance();
+ SysTryReturnResult(NID_IO, __pMmcStorageManagerProxy != null, E_SERVICE_BUSY, "Failed to get IPC proxy instance.");
+ __pMmcStorageManagerProxy->SetMmcStorageManagerListener(this);
+ }
return __pMmcStorageManagerProxy->Format();
}