/** * */ package com.aionemu.packetsamurai.logrepo; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import org.apache.commons.httpclient.methods.multipart.FilePart; /** * @author Ulysses R. Ribeiro * */ public class LogFilePart extends FilePart { private LogFile _logFile; public LogFilePart(String name, LogFile logFile) throws FileNotFoundException { super(logFile.getFile().getName(), logFile.getFile()); _logFile = logFile; } @Override protected void sendData(OutputStream out) throws IOException { try { if (lengthOfData() > 0) { RemoteLogRepositoryBackend.getInstance().getUploadListener().updateTransferProgressText(_logFile, "Uploading"); byte[] buffer = new byte[4096]; InputStream instream = this.getSource().createInputStream(); try { int len; int progress, writed = 0; while ((len = instream.read(buffer)) >= 0) { out.write(buffer, 0, len); writed += len; progress = (int) ((((double) writed)/lengthOfData())*100); RemoteLogRepositoryBackend.getInstance().getUploadListener().updateTransferProgress(_logFile, progress); } } finally { instream.close(); RemoteLogRepositoryBackend.getInstance().getUploadListener().transferFinished(_logFile, true); } } else { RemoteLogRepositoryBackend.getInstance().getUploadListener().transferFinished(_logFile, false); } } catch (Exception e) { e.printStackTrace(); } } }