/* * Jitsi, the OpenSource Java VoIP and Instant Messaging client. * * Distributable under LGPL license. * See terms of license at gnu.org. */ package net.java.sip.communicator.service.protocol; import java.io.*; import net.java.sip.communicator.service.protocol.event.*; /** * The File Transfer Operation Set provides an interface towards those functions * of a given protocol, that allow transferring files among users. * * @author Emil Ivov * @author Yana Stamcheva */ public interface OperationSetFileTransfer extends OperationSet { /** * Sends a file transfer request to the given toContact by * specifying the local and remote file path and the fromContact, * sending the file. * * @param toContact the contact that should receive the file * @param file the file to send * * @return the transfer object * * @throws IllegalStateException if the protocol provider is not registered * or connected * @throws IllegalArgumentException if some of the arguments doesn't fit the * protocol requirements * @throws OperationNotSupportedException if the given contact client or * server does not support file transfers */ public FileTransfer sendFile( Contact toContact, File file) throws IllegalStateException, IllegalArgumentException, OperationNotSupportedException; /** * Sends a file transfer request to the given toContact by * specifying the local and remote file path and the fromContact, * sending the file. * * @param toContact the contact that should receive the file * @param fromContact the contact sending the file * @param remotePath the remote file path * @param localPath the local file path * * @return the transfer object * * @throws IllegalStateException if the protocol provider is not registered * or connected * @throws IllegalArgumentException if some of the arguments doesn't fit the * protocol requirements * @throws OperationNotSupportedException if the given contact client or * server does not support file transfers. */ public FileTransfer sendFile( Contact toContact, Contact fromContact, String remotePath, String localPath) throws IllegalStateException, IllegalArgumentException, OperationNotSupportedException; /** * Adds the given FileTransferListener that would listen for * file transfer requests and created file transfers. * * @param listener the FileTransferListener to add */ public void addFileTransferListener( FileTransferListener listener); /** * Removes the given FileTransferListener that listens for * file transfer requests and created file transfers. * * @param listener the FileTransferListener to remove */ public void removeFileTransferListener( FileTransferListener listener); /** * Returns the maximum file length supported by the protocol in bytes. * @return the file length that is supported. */ public long getMaximumFileLength(); }