package rocks.inspectit.ui.rcp.storage.util; import java.io.IOException; import java.io.InputStream; 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.TransferRateInputStream; /** * Wrapping entity to support download speed monitoring. * * @author Ivan Senic * */ public class DownloadHttpEntityWrapper extends HttpEntityWrapper { /** * {@link TransferDataMonitor} to pass to the {@link TransferRateInputStream}. */ private TransferDataMonitor transferDataMonitor; /** * Default constructor. * * @param wrapped * Entity to be wrapped. * @param transferDataMonitor * {@link TransferDataMonitor} to pass to the {@link TransferRateInputStream}. */ public DownloadHttpEntityWrapper(HttpEntity wrapped, TransferDataMonitor transferDataMonitor) { super(wrapped); this.transferDataMonitor = transferDataMonitor; } /** * {@inheritDoc} */ @Override public InputStream getContent() throws IOException { InputStream wrappedin = wrappedEntity.getContent(); return new TransferRateInputStream(wrappedin, transferDataMonitor); } }