[Title] add to close socket channel when closing FileEntryInputStream 92/11292/1
authorshingil.kang <shingil.kang@samsung.com>
Wed, 23 Oct 2013 18:26:09 +0000 (03:26 +0900)
committershingil.kang <shingil.kang@samsung.com>
Thu, 24 Oct 2013 01:35:51 +0000 (10:35 +0900)
[Desc.]
[Issue]

Change-Id: Iefd1ddcb9383d5a1a7ae31f23425541c25baf167
Signed-off-by: shingil.kang <shingil.kang@samsung.com>
org.tizen.common.sdblib/src/org/tizen/sdblib/service/FileEntryInputStream.java

index ae9c2cc..f739c1d 100644 (file)
@@ -33,6 +33,7 @@ import static org.tizen.sdblib.SdbHelper.string2bytes;
 import static org.tizen.sdblib.SdbHelper.write;\r
 import static org.tizen.sdblib.SmartDevelopmentBridgetConstants.ID_DATA;\r
 import static org.tizen.sdblib.SmartDevelopmentBridgetConstants.ID_DONE;\r
+import static org.tizen.sdblib.SmartDevelopmentBridgetConstants.ID_QUIT;\r
 import static org.tizen.sdblib.SmartDevelopmentBridgetConstants.ID_RECV;\r
 import static org.tizen.sdblib.service.FileEntryConstants.REMOTE_PATH_MAX_LENGTH;\r
 import static org.tizen.sdblib.service.FileEntryConstants.SYNC_DATA_MAX;\r
@@ -55,6 +56,7 @@ import org.tizen.sdblib.SdbResponse;
 import org.tizen.sdblib.SmartDevelopmentBridge;\r
 import org.tizen.sdblib.exception.SyncException;\r
 import org.tizen.sdblib.exception.TimeoutException;\r
+import org.tizen.sdblib.util.IOUtil;\r
 import org.tizen.sdblib.util.Log;\r
 \r
 /**\r
@@ -245,5 +247,38 @@ extends InputStream
            return 0xFF & data[index++];\r
     }\r
 \r
+     /**\r
+     * Create a command with a code and an int values\r
+     * @param command\r
+     * @param value\r
+     * @return\r
+     */\r
+    private static\r
+    byte[]\r
+    createReq(\r
+        final byte[] command,\r
+        final int value\r
+    )\r
+    {\r
+        final byte[] array = new byte[8];\r
+\r
+        System.arraycopy(command, 0, array, 0, 4);\r
+        toBytes(value, array, 4);\r
+\r
+        return array;\r
+    }\r
+\r
+\r
+    /* (non-Javadoc)\r
+     * @see java.io.InputStream#close()\r
+     */\r
+    @Override\r
+    public void close() throws IOException\r
+    {\r
+        SdbHelper.write(channel, createReq(ID_QUIT, 0));\r
+        IOUtil.tryClose(channel);\r
+        super.close();\r
+    }\r
+\r
 \r
 }\r