diff options
Diffstat (limited to 'src/main/java/org/openslx/filetransfer/util/ChunkList.java')
-rw-r--r-- | src/main/java/org/openslx/filetransfer/util/ChunkList.java | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/src/main/java/org/openslx/filetransfer/util/ChunkList.java b/src/main/java/org/openslx/filetransfer/util/ChunkList.java index 91d6f1e..bd927b1 100644 --- a/src/main/java/org/openslx/filetransfer/util/ChunkList.java +++ b/src/main/java/org/openslx/filetransfer/util/ChunkList.java @@ -10,14 +10,15 @@ import java.util.LinkedList; import java.util.List; import java.util.zip.CRC32; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.openslx.filetransfer.LocalChunkSource.ChunkSource; import org.openslx.util.ThriftUtil; public class ChunkList { - private static final Logger LOGGER = Logger.getLogger( ChunkList.class ); + private static final Logger LOGGER = LogManager.getLogger( ChunkList.class ); /** * Here we keep a list of all chunks in the proper order, in case we quickly need to access one @@ -204,7 +205,7 @@ public class ChunkList missingChunks.addAll( append ); } } catch ( Exception e ) { - LOGGER.warn( "chunk clone list if messed up", e ); + LOGGER.warn( "chunk clone list is messed up", e ); } } } @@ -414,6 +415,35 @@ public class ChunkList return sb.toString(); } + public synchronized String getStats() + { + int complete = 0, copying = 0, hashing = 0, missing = 0, qfc = 0, uploading = 0; + for ( FileChunk chunk : allChunks ) { + switch ( chunk.status ) { + case COMPLETE: + complete++; + break; + case COPYING: + copying++; + break; + case HASHING: + hashing++; + break; + case MISSING: + missing++; + break; + case QUEUED_FOR_COPY: + qfc++; + break; + case UPLOADING: + uploading++; + break; + } + } + return "(" + allChunks.size() + ":" + completeChunks.size() + "/" + pendingChunks.size() + "/" + missingChunks.size() + ")" + + " (" + complete + "/" + copying + "/" + hashing + "/" + missing + "/" + qfc + "/" + uploading + ")"; + } + public synchronized boolean isEmpty() { return allChunks.isEmpty(); |