From aa1f73472dd498ee8d21d265b034503cd1553dbd Mon Sep 17 00:00:00 2001 From: Matthieu Gautier Date: Tue, 26 Apr 2022 17:15:39 +0200 Subject: [PATCH] Remove unecessary BookDB helper class. It was needed to not expose Xapian in public header. Now we can remove it and directly use a Xapian db. --- src/library.cpp | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/src/library.cpp b/src/library.cpp index a1b66668a..95a3dbf03 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -73,8 +73,7 @@ struct Library::Impl std::map> m_readers; std::map> m_archives; std::vector m_bookmarks; - class BookDB; - std::unique_ptr m_bookDB; + Xapian::WritableDatabase m_bookDB; Impl(); ~Impl(); @@ -83,15 +82,8 @@ struct Library::Impl Impl& operator=(Impl&& ); }; - -class Library::Impl::BookDB : public Xapian::WritableDatabase -{ -public: - BookDB() : Xapian::WritableDatabase("", Xapian::DB_BACKEND_INMEMORY) {} -}; - Library::Impl::Impl() - : m_bookDB(new BookDB) + : m_bookDB("", Xapian::DB_BACKEND_INMEMORY) { } @@ -176,7 +168,7 @@ void Library::dropReader(const std::string& id) bool Library::removeBookById(const std::string& id) { std::lock_guard lock(m_mutex); - mp_impl->m_bookDB->delete_document("Q" + id); + mp_impl->m_bookDB.delete_document("Q" + id); dropReader(id); return mp_impl->m_books.erase(id) == 1; } @@ -431,7 +423,7 @@ void Library::updateBookDB(const Book& book) doc.set_data(book.getId()); - mp_impl->m_bookDB->replace_document(idterm, doc); + mp_impl->m_bookDB.replace_document(idterm, doc); } namespace @@ -564,7 +556,7 @@ Library::BookIdCollection Library::filterViaBookDB(const Filter& filter) const BookIdCollection bookIds; std::lock_guard lock(m_mutex); - Xapian::Enquire enquire(*mp_impl->m_bookDB); + Xapian::Enquire enquire(mp_impl->m_bookDB); enquire.set_query(query); const auto results = enquire.get_mset(0, mp_impl->m_books.size()); for ( auto it = results.begin(); it != results.end(); ++it ) {