/*******************************************************************************
* Copyright (c) 2004 Composent, Inc. All rights reserved. This
* program and the accompanying materials are made available under the terms of
* the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors: Composent, Inc. - initial API and implementation
******************************************************************************/
package org.eclipse.ecf.filetransfer;
/**
* Adapter for setting rate control on IFileTransferInfo instances that expose
* expose this adapter interface via
* {@link IFileTransfer#getAdapter(Class adapter)}. To use this interface,
* clients should do the following:
*
* <pre>
* IFileTransfer fileTransfer;
* IFileTransferRateControl rateController = (IFileTransferRateControl) fileTransfer.getAdapter(IFileTransferRateControl.class);
* if (rateController !=null) {
* ... use it
* } else {
* ... does not support rate control
* }
* </pre>
*
*/
public interface IFileTransferRateControl {
/**
* Set maximum download speed in bytes/second. Specifying a maximum download
* speed of 0 indicates that any exiting rate cap should be removed, and the
* transfer should proceed as fast as possible a
*
* @param maxDownloadSpeed
* in bytes/second
*/
public void setMaxDownloadSpeed(long maxDownloadSpeed);
/**
* Set maximum upload speed in bytes/second. Specifying a maximum upload
* speed of 0 indicates that any exiting rate cap should be removed, and the
* transfer should proceed as fast as possible
*
* @param maxUploadSpeed
* in bytes/second
*/
public void setMaxUploadSpeed(long maxUploadSpeed);
}