package rocks.inspectit.ui.rcp.storage.util;
import java.io.IOException;
import java.io.OutputStream;
import org.apache.http.HttpEntity;
import org.apache.http.entity.HttpEntityWrapper;
import rocks.inspectit.ui.rcp.storage.http.TransferDataMonitor;
import rocks.inspectit.ui.rcp.storage.http.TransferRateOutputStream;
/**
* Wrapping entity to support upload speed monitoring.
*
* @author Ivan Senic
*
*/
public class UploadHttpEntityWrapper extends HttpEntityWrapper {
/**
* {@link TransferDataMonitor} to pass to the {@link TransferRateOutputStream}.
*/
private TransferDataMonitor transferDataMonitor;
/**
* Default constructor.
*
* @param wrapped
* Entity to be wrapped.
* @param transferDataMonitor
* {@link TransferDataMonitor} to pass to the {@link TransferRateOutputStream}.
*/
public UploadHttpEntityWrapper(HttpEntity wrapped, TransferDataMonitor transferDataMonitor) {
super(wrapped);
this.transferDataMonitor = transferDataMonitor;
}
/**
* {@inheritDoc}
*/
@Override
public void writeTo(OutputStream outstream) throws IOException {
OutputStream targetStream = new TransferRateOutputStream(outstream, transferDataMonitor);
super.writeTo(targetStream);
};
}