/* * 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); /** Call flush after editing an existing bookmark. */ void flush(); /** Returns pointers to the bookmarks. These can be edited, and then flush()ed.*/ const std::vector >& getBookmarks(); boost::signal)> onBookmarkAdded; boost::signal)> onBookmarkRemoved; private: void handleBookmarksReceived(boost::shared_ptr payload, const boost::optional& error); std::vector > bookmarks_; IQRouter* iqRouter_; }; }