32
32
typedef std::vector<BookDescriptionPtr> Books;
34
class DescriptionComparator {
37
DescriptionComparator();
38
~DescriptionComparator();
39
bool operator() (const BookDescriptionPtr d1, const BookDescriptionPtr d2);
42
34
class BookCollection {
52
44
const std::vector<AuthorPtr> &authors() const;
53
const Books &books(AuthorPtr author) const;
45
const Books &books() const;
54
46
bool isBookExternal(BookDescriptionPtr description) const;
56
48
void rebuild(bool strong);
57
49
bool synchronize() const;
51
void collectSeriesNames(AuthorPtr author, std::set<std::string> &list) const;
52
void removeTag(const std::string &tag, bool includeSubTags);
53
void renameTag(const std::string &from, const std::string &to, bool includeSubTags);
54
void cloneTag(const std::string &from, const std::string &to, bool includeSubTags);
55
void addTagToAllBooks(const std::string &to);
56
void addTagToBooksWithNoTags(const std::string &to);
57
bool hasBooks(const std::string &tag) const;
58
bool hasSubtags(const std::string &tag) const;
61
61
void collectDirNames(std::set<std::string> &names) const;
62
62
void collectBookFileNames(std::set<std::string> &bookFileNames) const;
64
64
void addDescription(BookDescriptionPtr description) const;
67
mutable Books myBooks;
67
68
mutable std::vector<AuthorPtr> myAuthors;
68
mutable std::map<AuthorPtr,Books> myCollection;
69
69
mutable std::set<BookDescriptionPtr> myExternalBooks;
71
71
mutable std::string myPath;
92
inline DescriptionComparator::DescriptionComparator() {}
93
inline DescriptionComparator::~DescriptionComparator() {}
95
inline const std::vector<AuthorPtr > &BookCollection::authors() const {
100
inline const Books &BookCollection::books(AuthorPtr author) const {
102
return (*myCollection.find(author)).second;
92
inline const Books &BookCollection::books() const {
105
97
inline bool BookCollection::isBookExternal(BookDescriptionPtr description) const {