summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/db
diff options
context:
space:
mode:
authorNils Schwabe2014-07-11 15:46:18 +0200
committerNils Schwabe2014-07-11 15:46:18 +0200
commit0e2d23f82f8c564b7267c14414e38de9c71a081f (patch)
treeb7a8914862e4f0423a32c5141e14f8d4f377dd9c /src/main/java/org/openslx/imagemaster/db
parentStart to implement download functionallity (diff)
downloadmasterserver-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.java22
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