/*******************************************************************************
* 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 interface for pausing and resuming IFileTransfer instances that
* expose this adapter interface via
* {@link IFileTransfer#getAdapter(Class adapter)}. To use this interface,
* clients should do the following:
*
* <pre>
* IFileTransfer fileTransfer;
* IFileTransferPausable pausable = (IFileTransferPausable) fileTransfer.getAdapter(IFileTransferPausable.class);
* if (pausable !=null) {
* ... use it
* } else {
* ... does not support pausing
* }
* </pre>
*
*/
public interface IFileTransferPausable {
/**
* Pause file transfer. Returns true if the associated IFileTransfer is
* successfully paused. Returns false if the implementing file transfer
* cannot be paused, or transfer has already completed.
*
* @return boolean true if file transfer successfully paused. False if cannot be
* paused, or the transfer has already completed
*/
public boolean pause();
/**
*
* @return boolean true if file transfer paused, false if not paused
*/
public boolean isPaused();
/**
* Resume file transfer after having been paused. If successfully resumed,
* then returns true. If the associated IFileShare is not already paused, or
* has already completed then this method returns false.
*
* @return boolean true if transfer is successfully resumed, false otherwise
*/
public boolean resume();
}