aboutsummaryrefslogtreecommitdiff
path: root/xmpp-vala/src/module/xep/0166_jingle/jingle_structs.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/jingle_structs.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/jingle_structs.vala')
-rw-r--r--xmpp-vala/src/module/xep/0166_jingle/jingle_structs.vala73
1 files changed, 73 insertions, 0 deletions
diff --git a/xmpp-vala/src/module/xep/0166_jingle/jingle_structs.vala b/xmpp-vala/src/module/xep/0166_jingle/jingle_structs.vala
new file mode 100644
index 00000000..0f283e0e
--- /dev/null
+++ b/xmpp-vala/src/module/xep/0166_jingle/jingle_structs.vala
@@ -0,0 +1,73 @@
+using Gee;
+using Xmpp;
+
+namespace Xmpp.Xep.Jingle {
+
+ public errordomain IqError {
+ BAD_REQUEST,
+ NOT_ACCEPTABLE,
+ NOT_IMPLEMENTED,
+ UNSUPPORTED_INFO,
+ OUT_OF_ORDER,
+ RESOURCE_CONSTRAINT,
+ }
+
+ public errordomain Error {
+ GENERAL,
+ BAD_REQUEST,
+ INVALID_PARAMETERS,
+ UNSUPPORTED_TRANSPORT,
+ UNSUPPORTED_SECURITY,
+ NO_SHARED_PROTOCOLS,
+ TRANSPORT_ERROR,
+ }
+
+ public enum Senders {
+ BOTH,
+ INITIATOR,
+ NONE,
+ RESPONDER;
+
+ public string to_string() {
+ switch (this) {
+ case BOTH: return "both";
+ case INITIATOR: return "initiator";
+ case NONE: return "none";
+ case RESPONDER: return "responder";
+ }
+ assert_not_reached();
+ }
+
+ public static Senders parse(string? senders) throws IqError {
+ if (senders == null) return Senders.BOTH;
+ switch (senders) {
+ case "initiator": return Senders.INITIATOR;
+ case "responder": return Senders.RESPONDER;
+ case "both": return Senders.BOTH;
+ }
+ throw new IqError.BAD_REQUEST(@"invalid role $(senders)");
+ }
+ }
+
+ public enum Role {
+ INITIATOR,
+ RESPONDER;
+
+ public string to_string() {
+ switch (this) {
+ case INITIATOR: return "initiator";
+ case RESPONDER: return "responder";
+ }
+ assert_not_reached();
+ }
+
+ public static Role parse(string role) throws IqError {
+ switch (role) {
+ case "initiator": return INITIATOR;
+ case "responder": return RESPONDER;
+ }
+ throw new IqError.BAD_REQUEST(@"invalid role $(role)");
+ }
+ }
+
+} \ No newline at end of file