diff options
author | Nils Schwabe | 2014-07-11 15:46:18 +0200 |
---|---|---|
committer | Nils Schwabe | 2014-07-11 15:46:18 +0200 |
commit | 0e2d23f82f8c564b7267c14414e38de9c71a081f (patch) | |
tree | b7a8914862e4f0423a32c5141e14f8d4f377dd9c /src/main/java/org/openslx/imagemaster/db | |
parent | Start to implement download functionallity (diff) | |
download | masterserver-0e2d23f82f8c564b7267c14414e38de9c71a081f.tar.gz masterserver-0e2d23f82f8c564b7267c14414e38de9c71a081f.tar.xz masterserver-0e2d23f82f8c564b7267c14414e38de9c71a081f.zip |
Change now saving status of blocks in array
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/db')
-rw-r--r-- | src/main/java/org/openslx/imagemaster/db/DbImage.java | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/main/java/org/openslx/imagemaster/db/DbImage.java b/src/main/java/org/openslx/imagemaster/db/DbImage.java index fa089d4..904442d 100644 --- a/src/main/java/org/openslx/imagemaster/db/DbImage.java +++ b/src/main/java/org/openslx/imagemaster/db/DbImage.java @@ -3,9 +3,10 @@ package org.openslx.imagemaster.db; import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.util.Date; -import java.util.LinkedList; import java.util.List; +import org.openslx.imagemaster.Globals; +import org.openslx.imagemaster.serverconnection.UploadingImage; import org.openslx.imagemaster.thrift.iface.ImageData; public class DbImage @@ -26,7 +27,7 @@ public class DbImage public final Timestamp timestamp; public final long fileSize; public final String token; - public final List<Integer> missingBlocks; + public final int[] blockStatus; public final String serverSessionId; public DbImage(String uuid) @@ -46,7 +47,7 @@ public class DbImage this.timestamp = new Timestamp( 0 ); this.fileSize = 0; this.token = null; - this.missingBlocks = null; + this.blockStatus = null; this.serverSessionId = null; } @@ -72,9 +73,12 @@ public class DbImage this.token = token; String[] parts = missingBlocksList.split( ";" ); - this.missingBlocks = new LinkedList<>(); + blockStatus = new int[ (int)Math.ceil( this.fileSize / Globals.blockSize ) ]; // initialize array to ones + for ( int i : blockStatus ) { + blockStatus[i] = UploadingImage.valid; + } for ( int i = 0; i < parts.length - 1; i++ ) { // do not copy the last empty string (1;2;3;) -> "1","2","3","" - this.missingBlocks.add( Integer.valueOf( parts[i] ) ); + blockStatus[i] = UploadingImage.missing; } this.serverSessionId = serverSessionId; @@ -101,7 +105,7 @@ public class DbImage * @param serverSessionId The server that is uploading this image * @return Affected rows */ - public static int insert( ImageData imageData, long ts, String token, List<Integer> missingBlocks, String serverSessionId, String filepath ) + public static int insert( ImageData imageData, long ts, String token, int missingBlocks, String serverSessionId, String filepath ) { Date createTime = new Date( imageData.imageCreateTime ); Date updateTime = new Date( imageData.imageUpdateTime ); @@ -109,10 +113,8 @@ public class DbImage SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ); String missingBlocksList = ""; - if ( missingBlocks != null ) { - for ( Integer block : missingBlocks ) { - missingBlocksList = missingBlocksList + String.valueOf( block ) + ";"; - } + for ( int i = 0; i < missingBlocks; i++ ) { + missingBlocksList = missingBlocksList + String.valueOf( i ) + ";"; } return MySQL |