blob: e368bad99eb1640d72d4d56b77017f3b28c20df0 [file] [log] [blame]
Shuyi Chend7955ce2013-05-22 14:51:55 -07001/**
2 * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License");
3 * you may not use this file except in compliance with the License.
4 * You may obtain a copy of the License at
5 *
6 * http://www.apache.org/licenses/LICENSE-2.0
7 *
8 * Unless required by applicable law or agreed to in writing, software
9 * distributed under the License is distributed on an "AS IS" BASIS,
10 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 * See the License for the specific language governing permissions and
12 * limitations under the License.
13 */
14package org.jivesoftware.smackx.bytestreams;
15
16import org.jivesoftware.smack.XMPPException;
17import org.jivesoftware.smackx.bytestreams.ibb.InBandBytestreamRequest;
18import org.jivesoftware.smackx.bytestreams.socks5.Socks5BytestreamRequest;
19
20/**
21 * BytestreamRequest provides an interface to handle incoming bytestream requests.
22 * <p>
23 * There are two implementations of the interface. See {@link Socks5BytestreamRequest} and
24 * {@link InBandBytestreamRequest}.
25 *
26 * @author Henning Staib
27 */
28public interface BytestreamRequest {
29
30 /**
31 * Returns the sender of the bytestream open request.
32 *
33 * @return the sender of the bytestream open request
34 */
35 public String getFrom();
36
37 /**
38 * Returns the session ID of the bytestream open request.
39 *
40 * @return the session ID of the bytestream open request
41 */
42 public String getSessionID();
43
44 /**
45 * Accepts the bytestream open request and returns the session to send/receive data.
46 *
47 * @return the session to send/receive data
48 * @throws XMPPException if an error occurred while accepting the bytestream request
49 * @throws InterruptedException if the thread was interrupted while waiting in a blocking
50 * operation
51 */
52 public BytestreamSession accept() throws XMPPException, InterruptedException;
53
54 /**
55 * Rejects the bytestream request by sending a reject error to the initiator.
56 */
57 public void reject();
58
59}