Change file path of domain socket
[platform/framework/native/appfw.git] / src / io / FIo_MmcStorageManagerImpl.cpp
index e45ffa8..9b30549 100644 (file)
@@ -24,8 +24,8 @@
 #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"
@@ -121,7 +121,6 @@ _MmcStorageManagerImpl::_MmcStorageManagerImpl(void)
 
 _MmcStorageManagerImpl::~_MmcStorageManagerImpl(void)
 {
-       delete __pMmcStorageManagerProxy;
        delete __pMountEvent;
        delete __pFormatEvent;
 }
@@ -129,22 +128,12 @@ _MmcStorageManagerImpl::~_MmcStorageManagerImpl(void)
 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();
 
@@ -157,34 +146,51 @@ _MmcStorageManagerImpl::GetInstance(void)
        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();
 }