#pragma once #include #include #include #include "Swiften/MUC/MUCBookmark.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: std::vector > bookmarks_; IQRouter* iqRouter_; }; }