aboutsummaryrefslogtreecommitdiff
path: root/xmpp-vala/src/module/xep/0166_jingle/content_transport.vala
diff options
context:
space:
mode:
authorfiaxh <git@lightrise.org>2021-03-19 22:46:39 +0100
committerfiaxh <git@lightrise.org>2021-03-21 12:40:04 +0100
commit2b90fcc39a1079346d6c5e2bfff8987104da737a (patch)
treee9c645a82010392623ec2cd3333e8dd1c8d4431a /xmpp-vala/src/module/xep/0166_jingle/content_transport.vala
parent148cf48d2b68354881066e2587e2673c91d2619a (diff)
downloaddino-2b90fcc39a1079346d6c5e2bfff8987104da737a.tar.gz
dino-2b90fcc39a1079346d6c5e2bfff8987104da737a.zip
Improve & refactor Jingle base implementation
Co-authored-by: Marvin W <git@larma.de>
Diffstat (limited to 'xmpp-vala/src/module/xep/0166_jingle/content_transport.vala')
-rw-r--r--xmpp-vala/src/module/xep/0166_jingle/content_transport.vala29
1 files changed, 29 insertions, 0 deletions
diff --git a/xmpp-vala/src/module/xep/0166_jingle/content_transport.vala b/xmpp-vala/src/module/xep/0166_jingle/content_transport.vala
new file mode 100644
index 00000000..cd74c836
--- /dev/null
+++ b/xmpp-vala/src/module/xep/0166_jingle/content_transport.vala
@@ -0,0 +1,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();
+ 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);
+ }
+} \ No newline at end of file