diff options
Diffstat (limited to 'Swiftob/MUCs.h')
-rw-r--r-- | Swiftob/MUCs.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/Swiftob/MUCs.h b/Swiftob/MUCs.h new file mode 100644 index 0000000..e727ec2 --- /dev/null +++ b/Swiftob/MUCs.h @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2011 Kevin Smith + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#pragma once + +#include <vector> +#include <string> + +#include <Swiften/JID/JID.h> +#include <Swiften/Elements/Message.h> +#include <Swiften/MUC/MUC.h> +#include <Swiften/MUC/MUCRegistry.h> + +namespace Swift { +class Client; +class MUC; +} + +class Storage; + +using namespace Swift; + +class MUCs { + public: + MUCs(Client* client, Storage* storage); + void join(const JID& room, boost::signal<void (const std::string&)>::slot_type successCallback, boost::function<void(const std::string& /*reason*/)> failureCallback); + void part(const JID& room); + bool contains(const JID& room); + MUC::ref getMUC(const JID& room); + private: + void handleConnected(); + void handleJoinFailed(const JID& room, ErrorPayload::ref error, boost::function<void(const std::string& /*reason*/)> failureCallback); + void handleInitialJoinSuccess(); + void handleInitialJoinFailure(const std::string&); + void save(); + private: + MUCRegistry registry_; + std::map<JID, MUC::ref> mucs_; + Client* client_; + Storage* storage_; + std::string defaultNick_; +}; + + |