1
0
Fork 0
mirror of https://github.com/vanitasvitae/Smack.git synced 2024-06-25 21:04:50 +02:00
Smack/extensions/src/main/java/org/jivesoftware/smackx/bytestreams/BytestreamRequest.java
Florian Schmaus 4b56446e40 Introduce SmackException
SmackException (and it's subclasses) is for all errors/exceptions not
defined by any XMPP specification. XMPPException is now an abstract
class for all errors defined by the XMPP specifications.

Methods that involve an IQ exchange now either return the result, which
is obtained by IQ response, or they throw an XMPPErrorException if an IQ
error was the result of the IQ set/get. If there was no response from
the server within the default packet timeout, a NoResponseException will
be thrown.

XMPP SASL errors are now also reported accordingly.

SMACK-426
2014-03-14 01:46:42 +01:00

67 lines
2.3 KiB
Java

/**
*
* Copyright the original author or authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jivesoftware.smackx.bytestreams;
import org.jivesoftware.smack.SmackException;
import org.jivesoftware.smack.SmackException.NoResponseException;
import org.jivesoftware.smack.XMPPException.XMPPErrorException;
import org.jivesoftware.smackx.bytestreams.ibb.InBandBytestreamRequest;
import org.jivesoftware.smackx.bytestreams.socks5.Socks5BytestreamRequest;
/**
* BytestreamRequest provides an interface to handle incoming bytestream requests.
* <p>
* There are two implementations of the interface. See {@link Socks5BytestreamRequest} and
* {@link InBandBytestreamRequest}.
*
* @author Henning Staib
*/
public interface BytestreamRequest {
/**
* Returns the sender of the bytestream open request.
*
* @return the sender of the bytestream open request
*/
public String getFrom();
/**
* Returns the session ID of the bytestream open request.
*
* @return the session ID of the bytestream open request
*/
public String getSessionID();
/**
* Accepts the bytestream open request and returns the session to send/receive data.
*
* @return the session to send/receive data
* @throws XMPPErrorException if an error occurred while accepting the bytestream request
* @throws InterruptedException if the thread was interrupted while waiting in a blocking
* operation
* @throws NoResponseException
* @throws SmackException
*/
public BytestreamSession accept() throws InterruptedException, NoResponseException, XMPPErrorException, SmackException;
/**
* Rejects the bytestream request by sending a reject error to the initiator.
*/
public void reject();
}