diff options
Diffstat (limited to 'Swiften')
-rw-r--r-- | Swiften/MUC/MUC.cpp | 18 | ||||
-rw-r--r-- | Swiften/MUC/MUC.h | 2 |
2 files changed, 18 insertions, 2 deletions
diff --git a/Swiften/MUC/MUC.cpp b/Swiften/MUC/MUC.cpp index 8f04308..cfd468c 100644 --- a/Swiften/MUC/MUC.cpp +++ b/Swiften/MUC/MUC.cpp @@ -28,19 +28,33 @@ MUC::MUC(StanzaChannel* stanzaChannel, IQRouter* iqRouter, PresenceSender* prese //FIXME: discover reserved nickname +/** + * Join the MUC with default context. + */ void MUC::joinAs(const String &nick) { + internalJoin(nick); +} + +void MUC::internalJoin(const String &nick) { //TODO: password //TODO: history request joinComplete_ = false; - ownMUCJID = JID(ownMUCJID.getNode(), ownMUCJID.getDomain(), nick); - boost::shared_ptr<Presence> joinPresence(presenceSender->getLastSentUndirectedPresence()); + //FIXME: use date joinPresence->setTo(ownMUCJID); joinPresence->addPayload(boost::shared_ptr<Payload>(new MUCPayload())); presenceSender->sendPresence(joinPresence); } +/** + * Join the MUC with context since date. + */ +void MUC::joinWithContextSince(const String &nick) { + //FIXME: add date + internalJoin(nick); +} + void MUC::part() { presenceSender->removeDirectedPresenceReceiver(ownMUCJID); } diff --git a/Swiften/MUC/MUC.h b/Swiften/MUC/MUC.h index af3daa8..ea20ac4 100644 --- a/Swiften/MUC/MUC.h +++ b/Swiften/MUC/MUC.h @@ -32,6 +32,7 @@ namespace Swift { MUC(StanzaChannel* stanzaChannel, IQRouter* iqRouter, PresenceSender* presenceSender, const JID &muc); void joinAs(const String &nick); + void joinWithContextSince(const String &nick); /*void queryRoomInfo(); */ /*void queryRoomItems(); */ String getCurrentNick(); @@ -63,6 +64,7 @@ namespace Swift { private: void handleIncomingPresence(boost::shared_ptr<Presence> presence); + void internalJoin(const String& nick); private: JID ownMUCJID; |