|
Smack | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jivesoftware.smackx.filetransfer.FileTransferNegotiator
public class FileTransferNegotiator
Manages the negotiation of file transfers according to JEP-0096. If a file is being sent the remote user chooses the type of stream under which the file will be sent.
Field Summary | |
---|---|
static String |
BYTE_STREAM
The XMPP namespace of the SOCKS5 bytestream |
static boolean |
IBB_ONLY
A static variable to use only offer IBB for file transfer. |
static String |
INBAND_BYTE_STREAM
The XMPP namespace of the In-Band bytestream |
protected static String |
STREAM_DATA_FIELD_NAME
|
Method Summary | |
---|---|
static IQ |
createIQ(String ID,
String to,
String from,
IQ.Type type)
A convience 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 |
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. |
void |
rejectStream(StreamInitiation si)
Reject a stream initiation request from a remote user. |
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. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final String BYTE_STREAM
public static final String INBAND_BYTE_STREAM
protected static final String STREAM_DATA_FIELD_NAME
public static boolean IBB_ONLY
Method Detail |
---|
public static FileTransferNegotiator getInstanceFor(XMPPConnection connection)
connection
- The connection for which the transfer manager is desired
public 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 check
public 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 getSupportedProtocols()
public StreamNegotiator selectStreamNegotiator(FileTransferRequest request) throws XMPPException
request
- The related file transfer request.
XMPPException
- If there are either no stream methods contained in the packet, or
there is not an appropriate stream method.public void rejectStream(StreamInitiation si)
si
- The Stream Initiation request to reject.public String getNextStreamID()
public StreamNegotiator negotiateOutgoingTransfer(String userID, String streamID, String fileName, long size, String desc, int responseTimeout) throws XMPPException
If they accept, the packet will contain the other user's choosen stream type to send the file across. The two choices this implementation provides to the other user for file transfer are SOCKS5 Bytestreams, which is the prefered method of transfer, and In-Band Bytestreams, which is the fallback mechanism.
The other user may choose to decline the file request if they do not desire the file, their client does not support JEP-0096, or if there are no acceptable means to transfer the file.
Finally, if the other user does not respond this method will return null after the specified timeout.
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, this
XMPPException
- Thrown if there is an error negotiating the file transfer.
|
Smack | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |