aboutsummaryrefslogtreecommitdiff
path: root/xmpp-vala/src/module/iq/stanza.vala
diff options
context:
space:
mode:
authorfiaxh <git@mx.ax.lt>2017-03-10 17:01:45 +0100
committerfiaxh <git@mx.ax.lt>2017-03-10 17:11:25 +0100
commit2fe8489d368a371aefbfbe66e74621a8df14cdc2 (patch)
tree4dec90236b28101383753ffe4a1c7a34b09b0208 /xmpp-vala/src/module/iq/stanza.vala
parent7a1aa8c806a63cfd031c082524501e26d4a181ee (diff)
downloaddino-2fe8489d368a371aefbfbe66e74621a8df14cdc2.tar.gz
dino-2fe8489d368a371aefbfbe66e74621a8df14cdc2.zip
Rename vala-xmpp library to xmpp-vala
Diffstat (limited to 'xmpp-vala/src/module/iq/stanza.vala')
-rw-r--r--xmpp-vala/src/module/iq/stanza.vala51
1 files changed, 51 insertions, 0 deletions
diff --git a/xmpp-vala/src/module/iq/stanza.vala b/xmpp-vala/src/module/iq/stanza.vala
new file mode 100644
index 00000000..561c5866
--- /dev/null
+++ b/xmpp-vala/src/module/iq/stanza.vala
@@ -0,0 +1,51 @@
+using Gee;
+
+using Xmpp.Core;
+
+namespace Xmpp.Iq {
+
+public class Stanza : Xmpp.Stanza {
+
+ public const string TYPE_GET = "get";
+ public const string TYPE_RESULT = "result";
+ public const string TYPE_SET = "set";
+
+ private Stanza(string? id = null) {
+ base.outgoing(new StanzaNode.build("iq"));
+ this.id = id ?? random_uuid();
+ }
+
+ public Stanza.get(StanzaNode stanza_node, string? id = null) {
+ this(id);
+ this.type_ = TYPE_GET;
+ stanza.put_node(stanza_node);
+ }
+
+ public Stanza.result(Stanza request, StanzaNode? stanza_node = null) {
+ this(request.id);
+ this.type_ = TYPE_RESULT;
+ if (stanza_node != null) {
+ stanza.put_node(stanza_node);
+ }
+ }
+
+ public Stanza.set(StanzaNode stanza_node, string? id = null) {
+ this(id);
+ type_ = TYPE_SET;
+ stanza.put_node(stanza_node);
+ }
+
+ public Stanza.error(Stanza request, StanzaNode error_stanza, StanzaNode? associated_child = null) {
+ this(request.id);
+ this.type_ = TYPE_ERROR;
+ stanza.put_node(error_stanza);
+ if (associated_child != null) {
+ stanza.put_node(associated_child);
+ }
+ }
+ public Stanza.from_stanza(StanzaNode stanza_node, string? my_jid) {
+ base.incoming(stanza_node, my_jid);
+ }
+}
+
+}