aboutsummaryrefslogtreecommitdiff
path: root/xmpp-vala/src/module/xep/0166_jingle/content_transport.vala
blob: 2697a01c3646cead25c21f8a69a2741347eded54 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
namespace Xmpp.Xep.Jingle {

    public interface Transport : Object {
        public abstract string ns_uri { get; }
        public async abstract bool is_transport_available(XmppStream stream, uint8 components, Jid full_jid);
        public abstract TransportType type_ { get; }
        public abstract int priority { get; }
        public abstract TransportParameters create_transport_parameters(XmppStream stream, uint8 components, Jid local_full_jid, Jid peer_full_jid) throws Error;
        public abstract TransportParameters parse_transport_parameters(XmppStream stream, uint8 components, Jid local_full_jid, Jid peer_full_jid, StanzaNode transport) throws IqError;
    }

    public enum TransportType {
        DATAGRAM,
        STREAMING,
    }

    // Gets a null `stream` if connection setup was unsuccessful and another
    // transport method should be tried.
    public interface TransportParameters : Object {
        public abstract string ns_uri { get; }
        public abstract uint8 components { get; }

        public abstract void set_content(Content content);
        public abstract StanzaNode to_transport_stanza_node(string action_type);
        public abstract void handle_transport_accept(StanzaNode transport) throws IqError;
        public abstract void handle_transport_info(StanzaNode transport) throws IqError;
        public abstract void create_transport_connection(XmppStream stream, Content content);
    }
}