make syncService closeable
authoryoonki.park <yoonki.park@samsung.com>
Wed, 10 Apr 2013 02:36:42 +0000 (11:36 +0900)
committeryoonki.park <yoonki.park@samsung.com>
Wed, 10 Apr 2013 02:36:42 +0000 (11:36 +0900)
Signed-off-by: yoonki.park <yoonki.park@samsung.com>
org.tizen.common.sdblib/src/org/tizen/sdblib/SyncService.java

index 2be9068..b8b682f 100755 (executable)
@@ -16,6 +16,7 @@
 
 package org.tizen.sdblib;
 
+import java.io.Closeable;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
@@ -36,7 +37,7 @@ import org.tizen.sdblib.SyncService.ISyncProgressMonitor;
  * <p/>
  * To get a {@link SyncService} object, use {@link Device#getSyncService()}.
  */
-public final class SyncService {
+public final class SyncService implements Closeable {
 
     private final static byte[] ID_OKAY = { 'O', 'K', 'A', 'Y' };
     private final static byte[] ID_FAIL = { 'F', 'A', 'I', 'L' };
@@ -44,6 +45,7 @@ public final class SyncService {
     private final static byte[] ID_DATA = { 'D', 'A', 'T', 'A' };
     private final static byte[] ID_DONE = { 'D', 'O', 'N', 'E' };
     private final static byte[] ID_SEND = { 'S', 'E', 'N', 'D' };
+    private final static byte[] ID_QUIT = { 'Q', 'U', 'I', 'T' };
 
     private final static NullSyncProgressMonitor sNullSyncProgressMonitor =
             new NullSyncProgressMonitor();
@@ -267,6 +269,7 @@ public final class SyncService {
     public void close() {
         if (mChannel != null) {
             try {
+                sync_quit();
                 mChannel.close();
             } catch (IOException e) {
                 // nothing to be done really...
@@ -1009,7 +1012,7 @@ public final class SyncService {
             fos.flush();
         } catch (IOException e) {
             return new SyncResult(RESULT_FILE_WRITE_ERROR, e);
-        } 
+        }
 
         return new SyncResult(RESULT_OK);
     }
@@ -1343,6 +1346,15 @@ public final class SyncService {
         return true;
 
     }
+
+    private void sync_quit() {
+        byte[] msg = createReq(ID_QUIT, 0);
+        try {
+            SdbHelper.write(mChannel, msg, -1, SdbPreferences.getTimeOut());
+        }catch (IOException e) {
+            Log.e("sdb", "send quit error");
+        }
+    }
 }
 
 //to process size is bigger than integer maximum value