/* * 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 struct sqlite3; namespace Swift { class SQLiteHistoryManager : public HistoryManager { public: SQLiteHistoryManager(const std::string& file); ~SQLiteHistoryManager(); void addMessage(const HistoryMessage& message); std::vector getMessages(const JID& selfJID, const JID& contactJID, bool isGroupChat) const; void getAllContacts(const JID& selfJID, std::set& mucs, std::set& contacts) const; private: int getIDForJID(const JID&); int addJID(const JID&); boost::optional getJIDFromID(int id) const; boost::optional getIDFromJID(const JID& jid) const; sqlite3* db_; }; }