From 1ccad732b9a783d8f0140373602b7c1b84d04198 Mon Sep 17 00:00:00 2001
From: fiaxh <git@mx.ax.lt>
Date: Sat, 11 Mar 2017 01:40:42 +0100
Subject: Use typed identity in stream modules

---
 xmpp-vala/src/module/xep/0045_muc/module.vala | 36 ++++++++++++---------------
 1 file changed, 16 insertions(+), 20 deletions(-)

(limited to 'xmpp-vala/src/module/xep/0045_muc')

diff --git a/xmpp-vala/src/module/xep/0045_muc/module.vala b/xmpp-vala/src/module/xep/0045_muc/module.vala
index cb7f0d85..3b0c3c12 100644
--- a/xmpp-vala/src/module/xep/0045_muc/module.vala
+++ b/xmpp-vala/src/module/xep/0045_muc/module.vala
@@ -48,7 +48,7 @@ public class Module : XmppStreamModule {
 
         Muc.Flag.get_flag(stream).start_muc_enter(bare_jid, presence.id, listener);
 
-        Presence.Module.get_module(stream).send_presence(stream, presence);
+        stream.get_module(Presence.Module.IDENTITY).send_presence(stream, presence);
     }
 
     public void exit(XmppStream stream, string jid) {
@@ -56,7 +56,7 @@ public class Module : XmppStreamModule {
         Presence.Stanza presence = new Presence.Stanza();
         presence.to = jid + "/" + nick;
         presence.type_ = Presence.Stanza.TYPE_UNAVAILABLE;
-        Presence.Module.get_module(stream).send_presence(stream, presence);
+        stream.get_module(Presence.Module.IDENTITY).send_presence(stream, presence);
     }
 
     public void change_subject(XmppStream stream, string jid, string subject) {
@@ -64,13 +64,13 @@ public class Module : XmppStreamModule {
         message.to = jid;
         message.type_ = Message.Stanza.TYPE_GROUPCHAT;
         message.stanza.put_node((new StanzaNode.build("subject")).put_node(new StanzaNode.text(subject)));
-        Message.Module.get_module(stream).send_message(stream, message);
+        stream.get_module(Message.Module.IDENTITY).send_message(stream, message);
     }
 
     public void change_nick(XmppStream stream, string jid, string new_nick) {
         Presence.Stanza presence = new Presence.Stanza();
         presence.to = jid + "/" + new_nick;
-        Presence.Module.get_module(stream).send_presence(stream, presence);
+        stream.get_module(Presence.Module.IDENTITY).send_presence(stream, presence);
     }
 
     public void kick(XmppStream stream, string jid, string nick) {
@@ -80,30 +80,26 @@ public class Module : XmppStreamModule {
     public override void attach(XmppStream stream) {
         stream.add_flag(new Muc.Flag());
         Message.Module.require(stream);
-        Message.Module.get_module(stream).received_message.connect(on_received_message);
+        stream.get_module(Message.Module.IDENTITY).received_message.connect(on_received_message);
         Presence.Module.require(stream);
-        Presence.Module.get_module(stream).received_presence.connect(on_received_presence);
-        Presence.Module.get_module(stream).received_available.connect(on_received_available);
-        Presence.Module.get_module(stream).received_unavailable.connect(on_received_unavailable);
-        if (ServiceDiscovery.Module.get_module(stream) != null) {
-            ServiceDiscovery.Module.get_module(stream).add_feature(stream, NS_URI);
+        stream.get_module(Presence.Module.IDENTITY).received_presence.connect(on_received_presence);
+        stream.get_module(Presence.Module.IDENTITY).received_available.connect(on_received_available);
+        stream.get_module(Presence.Module.IDENTITY).received_unavailable.connect(on_received_unavailable);
+        if (stream.get_module(ServiceDiscovery.Module.IDENTITY) != null) {
+            stream.get_module(ServiceDiscovery.Module.IDENTITY).add_feature(stream, NS_URI);
         }
     }
 
     public override void detach(XmppStream stream) {
-        Message.Module.get_module(stream).received_message.disconnect(on_received_message);
-        Presence.Module.get_module(stream).received_presence.disconnect(on_received_presence);
-        Presence.Module.get_module(stream).received_available.disconnect(on_received_available);
-        Presence.Module.get_module(stream).received_unavailable.disconnect(on_received_unavailable);
-    }
-
-    public static Module? get_module(XmppStream stream) {
-        return (Module?) stream.get_module(IDENTITY);
+        stream.get_module(Message.Module.IDENTITY).received_message.disconnect(on_received_message);
+        stream.get_module(Presence.Module.IDENTITY).received_presence.disconnect(on_received_presence);
+        stream.get_module(Presence.Module.IDENTITY).received_available.disconnect(on_received_available);
+        stream.get_module(Presence.Module.IDENTITY).received_unavailable.disconnect(on_received_unavailable);
     }
 
     public static void require(XmppStream stream) {
         Presence.Module.require(stream);
-        if (get_module(stream) == null) stream.add_module(new Muc.Module());
+        if (stream.get_module(IDENTITY) == null) stream.add_module(new Muc.Module());
     }
 
     public override string get_ns() { return NS_URI; }
@@ -114,7 +110,7 @@ public class Module : XmppStreamModule {
         query.put_node(new StanzaNode.build("item", NS_URI_ADMIN).put_attribute("nick", nick, NS_URI_ADMIN).put_attribute("role", new_role, NS_URI_ADMIN));
         Iq.Stanza iq = new Iq.Stanza.set(query);
         iq.to = jid;
-        Iq.Module.get_module(stream).send_iq(stream, iq);
+        stream.get_module(Iq.Module.IDENTITY).send_iq(stream, iq);
     }
 
     private void on_received_message(XmppStream stream, Message.Stanza message) {
-- 
cgit v1.2.3-70-g09d2