コード例 #1
0
 /**
  * Updates states of all transfer records with the specified which are "running" and "waiting" to
  * "pending cancel"
  *
  * @param TransferType The type of transfers to cancel
  * @return Number of rows updated.
  */
 public int cancelAllWithType(TransferType type) {
   ContentValues values = new ContentValues();
   values.put(TransferTable.COLUMN_STATE, TransferState.PENDING_CANCEL.toString());
   String selection = null;
   String[] selectionArgs = null;
   if (type == TransferType.ANY) {
     selection = TransferTable.COLUMN_STATE + " in (?,?,?,?,?)";
     selectionArgs =
         new String[] {
           TransferState.IN_PROGRESS.toString(),
           TransferState.RESUMED_WAITING.toString(),
           TransferState.WAITING.toString(),
           TransferState.PAUSED.toString(),
           TransferState.WAITING_FOR_NETWORK.toString()
         };
   } else {
     selection =
         TransferTable.COLUMN_STATE + " in (?,?,?,?,?) and " + TransferTable.COLUMN_TYPE + "=?";
     selectionArgs =
         new String[] {
           TransferState.IN_PROGRESS.toString(),
           TransferState.RESUMED_WAITING.toString(),
           TransferState.WAITING.toString(),
           TransferState.PAUSED.toString(),
           TransferState.WAITING_FOR_NETWORK.toString(),
           type.toString()
         };
   }
   return transferDBBase.update(transferDBBase.getContentUri(), values, selection, selectionArgs);
 }
コード例 #2
0
 /**
  * Generates a ContentValues object to insert into the database with the given values for a
  * multipart upload record.
  *
  * @param bucket The name of the bucket to upload to.
  * @param key The key in the specified bucket by which to store the new object.
  * @param file The file to upload.
  * @param fileOffset The byte offset for the file to upload.
  * @param partNumber The part number of this part.
  * @param uploadId The multipart upload id of the upload.
  * @param bytesTotal The Total bytes of the file.
  * @param isLastPart Whether this part is the last part of the upload.
  * @return The ContentValues object generated.
  */
 public ContentValues generateContentValuesForMultiPartUpload(
     String bucket,
     String key,
     File file,
     long fileOffset,
     int partNumber,
     String uploadId,
     long bytesTotal,
     int isLastPart,
     ObjectMetadata metadata) {
   ContentValues values = new ContentValues();
   values.put(TransferTable.COLUMN_TYPE, TransferType.UPLOAD.toString());
   values.put(TransferTable.COLUMN_STATE, TransferState.WAITING.toString());
   values.put(TransferTable.COLUMN_BUCKET_NAME, bucket);
   values.put(TransferTable.COLUMN_KEY, key);
   values.put(TransferTable.COLUMN_FILE, file.getAbsolutePath());
   values.put(TransferTable.COLUMN_BYTES_CURRENT, 0l);
   values.put(TransferTable.COLUMN_BYTES_TOTAL, bytesTotal);
   values.put(TransferTable.COLUMN_IS_MULTIPART, 1);
   values.put(TransferTable.COLUMN_PART_NUM, partNumber);
   values.put(TransferTable.COLUMN_FILE_OFFSET, fileOffset);
   values.put(TransferTable.COLUMN_MULTIPART_ID, uploadId);
   values.put(TransferTable.COLUMN_IS_LAST_PART, isLastPart);
   values.put(TransferTable.COLUMN_IS_ENCRYPTED, 0);
   values.putAll(generateContentValuesForObjectMetadata(metadata));
   return values;
 }
コード例 #3
0
 /**
  * Updates states of all transfer records which are "running" and "waiting" to "network
  * disconnect"
  *
  * @return Number of rows updated.
  */
 public int updateNetworkDisconnected() {
   ContentValues values = new ContentValues();
   values.put(TransferTable.COLUMN_STATE, TransferState.PENDING_NETWORK_DISCONNECT.toString());
   return transferDBBase.update(
       transferDBBase.getContentUri(),
       values,
       TransferTable.COLUMN_STATE + " in (?,?,?)",
       new String[] {
         TransferState.IN_PROGRESS.toString(),
         TransferState.RESUMED_WAITING.toString(),
         TransferState.WAITING.toString()
       });
 }
コード例 #4
0
 /**
  * Updates states of all transfer records which are "running" and "waiting" to "paused"
  *
  * @return Number of rows updated.
  */
 public int setAllRunningRecordsToPausedBeforeShutdownService() {
   ContentValues values = new ContentValues();
   values.put(TransferTable.COLUMN_STATE, TransferState.PAUSED.toString());
   return transferDBBase.update(
       transferDBBase.getContentUri(),
       values,
       TransferTable.COLUMN_STATE + " in (?,?,?,?)",
       new String[] {
         TransferState.IN_PROGRESS.toString(),
         TransferState.PENDING_PAUSE.toString(),
         TransferState.RESUMED_WAITING.toString(),
         TransferState.WAITING.toString()
       });
 }
コード例 #5
0
 /**
  * Generates a ContentValues object to insert into the database with the given values for a single
  * chunk upload or download.
  *
  * @param type The type of the transfer, can be "upload" or "download".
  * @param bucket The name of the bucket to upload to.
  * @param key The key in the specified bucket by which to store the new object.
  * @param file The file to upload.
  * @param metadata The S3 ObjectMetadata to send along with the object
  * @return The ContentValues object generated.
  */
 private ContentValues generateContentValuesForSinglePartTransfer(
     TransferType type, String bucket, String key, File file, ObjectMetadata metadata) {
   ContentValues values = new ContentValues();
   values.put(TransferTable.COLUMN_TYPE, type.toString());
   values.put(TransferTable.COLUMN_STATE, TransferState.WAITING.toString());
   values.put(TransferTable.COLUMN_BUCKET_NAME, bucket);
   values.put(TransferTable.COLUMN_KEY, key);
   values.put(TransferTable.COLUMN_FILE, file.getAbsolutePath());
   values.put(TransferTable.COLUMN_BYTES_CURRENT, 0l);
   if (type.equals(TransferType.UPLOAD))
     values.put(TransferTable.COLUMN_BYTES_TOTAL, file == null ? 0l : file.length());
   values.put(TransferTable.COLUMN_IS_MULTIPART, 0);
   values.put(TransferTable.COLUMN_PART_NUM, 0);
   values.put(TransferTable.COLUMN_IS_ENCRYPTED, 0);
   values.putAll(generateContentValuesForObjectMetadata(metadata));
   return values;
 }