/* * Copyright (c) 2010 Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #pragma once #include #include #include #include #include "Swiften/MUC/MUCBookmark.h" #include "Swiften/Elements/Storage.h" #include "Swiften/Queries/Requests/GetPrivateStorageRequest.h" namespace Swift { class IQRouter; class MUCBookmarkManager { public: MUCBookmarkManager(IQRouter* iqRouter); void addBookmark(boost::shared_ptr bookmark); void removeBookmark(boost::shared_ptr bookmark); void replaceBookmark(boost::shared_ptr oldBookmark, boost::shared_ptr newBookmark); const std::vector >& getBookmarks(); boost::signal)> onBookmarkAdded; boost::signal)> onBookmarkRemoved; private: bool containsEquivalent(std::vector > list, boost::shared_ptr bookmark); void handleBookmarksReceived(boost::shared_ptr payload, const boost::optional& error); void flush(); std::vector > bookmarks_; IQRouter* iqRouter_; }; }