public class FileTransferNegotiator extends Object
Modifier and Type | Field and Description |
---|---|
static boolean |
IBB_ONLY
A static variable to use only offer IBB for file transfer.
|
protected static String |
STREAM_DATA_FIELD_NAME |
Modifier and Type | Method and Description |
---|---|
static IQ |
createIQ(String ID,
String to,
String from,
IQ.Type type)
A convenience method to create an IQ packet.
|
static FileTransferNegotiator |
getInstanceFor(XMPPConnection connection)
Returns the file transfer negotiator related to a particular connection.
|
String |
getNextStreamID()
Returns a new, unique, stream ID to identify a file transfer.
|
static Collection<String> |
getSupportedProtocols()
Returns a collection of the supported transfer protocols.
|
static boolean |
isServiceEnabled(XMPPConnection connection)
Checks to see if all file transfer related services are enabled on the
connection.
|
StreamNegotiator |
negotiateOutgoingTransfer(String userID,
String streamID,
String fileName,
long size,
String desc,
int responseTimeout)
Send a request to another user to send them a file.
|
StreamNegotiator |
selectStreamNegotiator(FileTransferRequest request)
Selects an appropriate stream negotiator after examining the incoming file transfer request.
|
static void |
setServiceEnabled(XMPPConnection connection,
boolean isEnabled)
Enable the Jabber services related to file transfer on the particular
connection.
|
protected static final String STREAM_DATA_FIELD_NAME
public static boolean IBB_ONLY
public static FileTransferNegotiator getInstanceFor(XMPPConnection connection)
connection
- The connection for which the transfer manager is desiredpublic static void setServiceEnabled(XMPPConnection connection, boolean isEnabled)
connection
- The connection on which to enable or disable the services.isEnabled
- True to enable, false to disable.public static boolean isServiceEnabled(XMPPConnection connection)
connection
- The connection to checkpublic static IQ createIQ(String ID, String to, String from, IQ.Type type)
ID
- The packet ID of theto
- To whom the packet is addressed.from
- From whom the packet is sent.type
- The IQ type of the packet.public static Collection<String> getSupportedProtocols()
public StreamNegotiator selectStreamNegotiator(FileTransferRequest request) throws XMPPException.XMPPErrorException, SmackException.NotConnectedException
request
- The related file transfer request.XMPPException.XMPPErrorException
- If there are either no stream methods contained in the packet, or
there is not an appropriate stream method.SmackException.NotConnectedException
public String getNextStreamID()
public StreamNegotiator negotiateOutgoingTransfer(String userID, String streamID, String fileName, long size, String desc, int responseTimeout) throws XMPPException.XMPPErrorException, SmackException.NotConnectedException
userID
- The userID of the user to whom the file will be sent.streamID
- The unique identifier for this file transfer.fileName
- The name of this file. Preferably it should include an
extension as it is used to determine what type of file it is.size
- The size, in bytes, of the file.desc
- A description of the file.responseTimeout
- The amount of time, in milliseconds, to wait for the remote
user to respond. If they do not respond in time, thisXMPPException.XMPPErrorException
- Thrown if there is an error negotiating the file transfer.SmackException.NotConnectedException