Merge "Add screen feature on SystemInfo" into tizen_2.2
[platform/framework/native/appfw.git] / src / io / FIoSerialPort.cpp
index ed1389a..49bcf71 100644 (file)
@@ -1,5 +1,4 @@
 //
-// Open Service Platform
 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
 //
 // Licensed under the Apache License, Version 2.0 (the License);
@@ -68,11 +67,11 @@ SerialPort::Construct(ISerialPortEventListener& listener)
 
        __pSerialPortImpl = _SerialPortImpl::GetInstance();
        SysTryReturnResult(NID_IO, __pSerialPortImpl != null, E_OUT_OF_MEMORY, "The memory is insufficient.");
-       SysTryReturnResult(NID_IO, __pSerialPortImpl->IsOpended() == false, E_SYSTEM, "SerialPort is already opened.");
+       SysTryCatch(NID_IO, __pSerialPortImpl->IsOpended() == false, r = E_SYSTEM, r, "SerialPort is already opened.");
 
        SysLog(NID_IO, "Try to open serialport");
        r = __pSerialPortImpl->SerialOpen();
-       SysTryReturnResult(NID_IO, r == E_SUCCESS, E_SYSTEM, "It is failed to open serial port.");
+       SysTryCatch(NID_IO, r == E_SUCCESS, r = E_SYSTEM, r, "It is failed to open serial port.");
 
        SysLog(NID_IO, "Try to register event");
        r = __pSerialPortImpl->SetSerialPortEventListener(listener);
@@ -80,10 +79,15 @@ SerialPort::Construct(ISerialPortEventListener& listener)
        {
                SysLogException(NID_IO, E_SYSTEM, "It is failed to register event listener.");
                r = __pSerialPortImpl->SerialClose();
-               SysTryReturnResult(NID_IO, r == E_SUCCESS, E_SYSTEM, "It is failed to close serial port.");
+               SysTryCatch(NID_IO, r == E_SUCCESS, r = E_SYSTEM, r, "It is failed to close serial port.");
 
                r = E_SYSTEM;
        }
+CATCH:
+       if(r != E_SUCCESS)
+       {
+               __pSerialPortImpl = null;
+       }
 
        return r;
 }
@@ -101,7 +105,6 @@ int
 SerialPort::GetWriteBufferSize(void) const
 {
        SysAssertf(__pSerialPortImpl != null, "Not yet constructed. Construct() should be called before use.\n");
-
        return __pSerialPortImpl->GetWriteBufferSize();
 }