diff options
Diffstat (limited to 'Swiften/Client/ClientBlockListManager.h')
-rw-r--r-- | Swiften/Client/ClientBlockListManager.h | 84 |
1 files changed, 45 insertions, 39 deletions
diff --git a/Swiften/Client/ClientBlockListManager.h b/Swiften/Client/ClientBlockListManager.h index e8d4ac6..5fc1335 100644 --- a/Swiften/Client/ClientBlockListManager.h +++ b/Swiften/Client/ClientBlockListManager.h @@ -1,52 +1,58 @@ /* - * Copyright (c) 2011 Remko Tronçon - * Licensed under the GNU General Public License v3. - * See Documentation/Licenses/GPLv3.txt for more information. + * Copyright (c) 2011-2016 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. */ #pragma once -#include <boost/shared_ptr.hpp> +#include <memory> -#include <Swiften/Base/boost_bsignals.h> -#include <Swiften/Elements/BlockPayload.h> +#include <boost/signals2.hpp> + +#include <Swiften/Base/API.h> +#include <Swiften/Client/BlockList.h> +#include <Swiften/Client/BlockListImpl.h> #include <Swiften/Elements/BlockListPayload.h> -#include <Swiften/Elements/UnblockPayload.h> +#include <Swiften/Elements/BlockPayload.h> #include <Swiften/Elements/DiscoInfo.h> -#include <Swiften/Queries/SetResponder.h> +#include <Swiften/Elements/UnblockPayload.h> #include <Swiften/Queries/GenericRequest.h> -#include <Swiften/Client/BlockList.h> -#include <Swiften/Client/BlockListImpl.h> +#include <Swiften/Queries/SetResponder.h> namespace Swift { - class IQRouter; - - class ClientBlockListManager { - public: - ClientBlockListManager(IQRouter *iqRouter); - ~ClientBlockListManager(); - - /** - * Returns the blocklist. - */ - boost::shared_ptr<BlockList> getBlockList(); - - GenericRequest<BlockPayload>::ref createBlockJIDRequest(const JID& jid); - GenericRequest<BlockPayload>::ref createBlockJIDsRequest(const std::vector<JID>& jids); - - GenericRequest<UnblockPayload>::ref createUnblockJIDRequest(const JID& jid); - GenericRequest<UnblockPayload>::ref createUnblockJIDsRequest(const std::vector<JID>& jids); - GenericRequest<UnblockPayload>::ref createUnblockAllRequest(); - - private: - void handleBlockListReceived(boost::shared_ptr<BlockListPayload> payload, ErrorPayload::ref); - - private: - IQRouter* iqRouter; - boost::shared_ptr<GenericRequest<BlockListPayload> > getRequest; - boost::shared_ptr<SetResponder<BlockPayload> > blockResponder; - boost::shared_ptr<SetResponder<UnblockPayload> > unblockResponder; - boost::shared_ptr<BlockListImpl> blockList; - }; + class IQRouter; + + class SWIFTEN_API ClientBlockListManager { + public: + ClientBlockListManager(IQRouter *iqRouter); + ~ClientBlockListManager(); + + /** + * Returns the blocklist. + */ + std::shared_ptr<BlockList> getBlockList(); + + /** + * Get the blocklist from the server. + */ + std::shared_ptr<BlockList> requestBlockList(); + + GenericRequest<BlockPayload>::ref createBlockJIDRequest(const JID& jid); + GenericRequest<BlockPayload>::ref createBlockJIDsRequest(const std::vector<JID>& jids); + + GenericRequest<UnblockPayload>::ref createUnblockJIDRequest(const JID& jid); + GenericRequest<UnblockPayload>::ref createUnblockJIDsRequest(const std::vector<JID>& jids); + GenericRequest<UnblockPayload>::ref createUnblockAllRequest(); + + private: + void handleBlockListReceived(std::shared_ptr<BlockListPayload> payload, ErrorPayload::ref); + + private: + IQRouter* iqRouter; + std::shared_ptr<SetResponder<BlockPayload> > blockResponder; + std::shared_ptr<SetResponder<UnblockPayload> > unblockResponder; + std::shared_ptr<BlockListImpl> blockList; + }; } |