19 #ifndef LIB_QUENTIER_LOCAL_STORAGE_LOCAL_STORAGE_MANAGER_H 20 #define LIB_QUENTIER_LOCAL_STORAGE_LOCAL_STORAGE_MANAGER_H 22 #include <quentier/local_storage/Lists.h> 23 #include <quentier/local_storage/NoteSearchQuery.h> 24 #include <quentier/types/Account.h> 25 #include <quentier/types/ErrorString.h> 26 #include <quentier/utility/Linkage.h> 27 #include <quentier/utility/Macros.h> 37 namespace qevercloud {
39 QT_FORWARD_DECLARE_STRUCT(Accounting)
40 QT_FORWARD_DECLARE_STRUCT(BusinessUserInfo)
41 QT_FORWARD_DECLARE_STRUCT(NoteAttributes)
42 QT_FORWARD_DECLARE_STRUCT(NotebookRestrictions)
43 QT_FORWARD_DECLARE_STRUCT(ResourceAttributes)
44 QT_FORWARD_DECLARE_STRUCT(PremiumInfo)
45 QT_FORWARD_DECLARE_STRUCT(SharedNotebook)
46 QT_FORWARD_DECLARE_STRUCT(UserAttributes)
52 QT_FORWARD_DECLARE_CLASS(ILocalStoragePatch)
53 QT_FORWARD_DECLARE_CLASS(LocalStorageManagerPrivate)
84 Q_DECLARE_FLAGS(StartupOptions, StartupOption)
86 friend QUENTIER_EXPORT QTextStream & operator<<(
87 QTextStream & strm,
const StartupOption option);
89 friend QUENTIER_EXPORT QDebug & operator<<(
90 QDebug & dbg,
const StartupOption option);
92 friend QUENTIER_EXPORT QTextStream & operator<<(
93 QTextStream & strm,
const StartupOptions options);
95 friend QUENTIER_EXPORT QDebug & operator<<(
96 QDebug & dbg,
const StartupOptions options);
110 const Account & account,
const StartupOptions options = 0,
111 QObject * parent =
nullptr);
126 void upgradeProgress(
double progress);
143 ListElementsWithoutGuid = 4,
144 ListElementsWithGuid = 8,
147 ListFavoritedElements = 64,
148 ListNonFavoritedElements = 128
150 Q_DECLARE_FLAGS(ListObjectsOptions, ListObjectsOption)
152 friend QUENTIER_EXPORT QTextStream & operator<<(
153 QTextStream & strm,
const ListObjectsOption option);
155 friend QUENTIER_EXPORT QDebug & operator<<(
156 QDebug & dbg,
const ListObjectsOption option);
158 friend QUENTIER_EXPORT QTextStream & operator<<(
159 QTextStream & strm,
const ListObjectsOptions options);
161 friend QUENTIER_EXPORT QDebug & operator<<(
162 QDebug & dbg,
const ListObjectsOptions options);
180 void switchUser(
const Account & account,
const StartupOptions options = 0);
205 bool isLocalStorageVersionTooHigh(
ErrorString & errorDescription);
231 bool localStorageRequiresUpgrade(
ErrorString & errorDescription);
245 QVector<std::shared_ptr<ILocalStoragePatch>> requiredLocalStoragePatches();
259 qint32 localStorageVersion(
ErrorString & errorDescription);
268 qint32 highestSupportedLocalStorageVersion()
const;
280 int userCount(
ErrorString & errorDescription)
const;
361 int notebookCount(
ErrorString & errorDescription)
const;
445 bool findDefaultNotebook(
458 bool findLastUsedNotebook(
472 bool findDefaultOrLastUsedNotebook(
486 friend QUENTIER_EXPORT QTextStream & operator<<(
487 QTextStream & strm,
const OrderDirection orderDirection);
489 friend QUENTIER_EXPORT QDebug & operator<<(
490 QDebug & dbg,
const OrderDirection orderDirection);
498 ByUpdateSequenceNumber = 0,
501 ByModificationTimestamp,
505 friend QUENTIER_EXPORT QTextStream & operator<<(
506 QTextStream & strm,
const ListNotebooksOrder order);
508 friend QUENTIER_EXPORT QDebug & operator<<(
509 QDebug & dbg,
const ListNotebooksOrder order);
544 QList<Notebook> listAllNotebooks(
546 const size_t limit = 0,
const size_t offset = 0,
547 const ListNotebooksOrder order = ListNotebooksOrder::NoOrder,
548 const OrderDirection orderDirection = OrderDirection::Ascending,
549 const QString & linkedNotebookGuid = QString())
const;
584 QList<Notebook> listNotebooks(
585 const ListObjectsOptions flag,
587 const size_t limit = 0,
const size_t offset = 0,
588 const ListNotebooksOrder order = ListNotebooksOrder::NoOrder,
589 const OrderDirection orderDirection = OrderDirection::Ascending,
590 const QString & linkedNotebookGuid = QString())
const;
604 QList<SharedNotebook> listAllSharedNotebooks(
623 QList<SharedNotebook> listSharedNotebooksPerNotebookGuid(
624 const QString & notebookGuid,
ErrorString & errorDescription)
const;
660 int linkedNotebookCount(
ErrorString & errorDescription)
const;
675 bool addLinkedNotebook(
690 bool updateLinkedNotebook(
708 bool findLinkedNotebook(
717 ByUpdateSequenceNumber = 0,
723 friend QUENTIER_EXPORT QTextStream & operator<<(
724 QTextStream & strm,
const ListLinkedNotebooksOrder order);
726 friend QUENTIER_EXPORT QDebug & operator<<(
727 QDebug & strm,
const ListLinkedNotebooksOrder order);
752 QList<LinkedNotebook> listAllLinkedNotebooks(
754 const size_t limit = 0,
const size_t offset = 0,
755 const ListLinkedNotebooksOrder order = ListLinkedNotebooksOrder::NoOrder,
756 const OrderDirection orderDirection = OrderDirection::Ascending)
const;
785 QList<LinkedNotebook> listLinkedNotebooks(
786 const ListObjectsOptions flag,
ErrorString & errorDescription,
787 const size_t limit = 0,
const size_t offset = 0,
788 const ListLinkedNotebooksOrder order = ListLinkedNotebooksOrder::NoOrder,
789 const OrderDirection orderDirection = OrderDirection::Ascending)
const;
808 bool expungeLinkedNotebook(
817 IncludeNonDeletedNotes = 1,
818 IncludeDeletedNotes = 2
820 Q_DECLARE_FLAGS(NoteCountOptions, NoteCountOption)
822 friend QUENTIER_EXPORT QTextStream & operator<<(
823 QTextStream & strm,
const NoteCountOption option);
825 friend QUENTIER_EXPORT QDebug & operator<<(
826 QDebug & dbg,
const NoteCountOption option);
828 friend QUENTIER_EXPORT QTextStream & operator<<(
829 QTextStream & strm,
const NoteCountOptions options);
831 friend QUENTIER_EXPORT QDebug & operator<<(
832 QDebug & strm,
const NoteCountOptions options);
848 const NoteCountOptions options =
849 NoteCountOption::IncludeNonDeletedNotes)
const;
867 int noteCountPerNotebook(
870 const NoteCountOptions options =
871 NoteCountOption::IncludeNonDeletedNotes)
const;
891 const NoteCountOptions options =
892 NoteCountOption::IncludeNonDeletedNotes)
const;
911 bool noteCountsPerAllTags(
912 QHash<QString, int> & noteCountsPerTagLocalUid,
914 const NoteCountOptions options =
915 NoteCountOption::IncludeNonDeletedNotes)
const;
935 int noteCountPerNotebooksAndTags(
936 const QStringList & notebookLocalUids,
937 const QStringList & tagLocalUids,
ErrorString & errorDescription,
938 const NoteCountOptions options =
939 NoteCountOption::IncludeNonDeletedNotes)
const;
976 UpdateResourceMetadata = 1,
983 UpdateResourceBinaryData = 2,
989 Q_DECLARE_FLAGS(UpdateNoteOptions, UpdateNoteOption)
991 friend QUENTIER_EXPORT QTextStream & operator<<(
992 QTextStream & strm,
const UpdateNoteOption option);
994 friend QUENTIER_EXPORT QDebug & operator<<(
995 QDebug & strm,
const UpdateNoteOption option);
997 friend QUENTIER_EXPORT QTextStream & operator<<(
998 QTextStream & strm,
const UpdateNoteOptions options);
1000 friend QUENTIER_EXPORT QDebug & operator<<(
1001 QDebug & strm,
const UpdateNoteOptions options);
1049 Note & note,
const UpdateNoteOptions options,
1070 WithResourceMetadata = 1,
1077 WithResourceBinaryData = 2
1079 Q_DECLARE_FLAGS(GetNoteOptions, GetNoteOption)
1081 friend QUENTIER_EXPORT QTextStream & operator<<(
1082 QTextStream & strm,
const GetNoteOption option);
1084 friend QUENTIER_EXPORT QDebug & operator<<(
1085 QDebug & dbg,
const GetNoteOption option);
1087 friend QUENTIER_EXPORT QTextStream & operator<<(
1088 QTextStream & strm,
const GetNoteOptions options);
1090 friend QUENTIER_EXPORT QDebug & operator<<(
1091 QDebug & strm,
const GetNoteOptions options);
1103 Note & note,
const GetNoteOptions options,
1112 ByUpdateSequenceNumber = 0,
1114 ByCreationTimestamp,
1115 ByModificationTimestamp,
1116 ByDeletionTimestamp,
1119 BySourceApplication,
1125 friend QUENTIER_EXPORT QTextStream & operator<<(
1126 QTextStream & strm,
const ListNotesOrder order);
1128 friend QUENTIER_EXPORT QDebug & operator<<(
1129 QDebug & strm,
const ListNotesOrder order);
1159 QList<Note> listNotesPerNotebook(
1161 const GetNoteOptions options,
1163 const ListObjectsOptions & flag = ListObjectsOption::ListAll,
1164 const size_t limit = 0,
const size_t offset = 0,
1165 const ListNotesOrder & order = ListNotesOrder::NoOrder,
1166 const OrderDirection & orderDirection = OrderDirection::Ascending)
const;
1195 QList<Note> listNotesPerTag(
1196 const Tag & tag,
const GetNoteOptions options,
1198 const ListObjectsOptions & flag = ListObjectsOption::ListAll,
1199 const size_t limit = 0,
const size_t offset = 0,
1200 const ListNotesOrder & order = ListNotesOrder::NoOrder,
1201 const OrderDirection & orderDirection = OrderDirection::Ascending)
const;
1233 QList<Note> listNotesPerNotebooksAndTags(
1234 const QStringList & notebookLocalUids,
1235 const QStringList & tagLocalUids,
1236 const GetNoteOptions options,
1238 const ListObjectsOptions & flag = ListObjectsOption::ListAll,
1239 const size_t limit = 0,
const size_t offset = 0,
1240 const ListNotesOrder & order = ListNotesOrder::NoOrder,
1241 const OrderDirection & orderDirection = OrderDirection::Ascending)
const;
1274 QList<Note> listNotesByLocalUids(
1275 const QStringList & noteLocalUids,
1276 const GetNoteOptions options,
1278 const ListObjectsOptions & flag = ListObjectsOption::ListAll,
1279 const size_t limit = 0,
const size_t offset = 0,
1280 const ListNotesOrder & order = ListNotesOrder::NoOrder,
1281 const OrderDirection & orderDirection = OrderDirection::Ascending)
const;
1317 QList<Note> listNotes(
1318 const ListObjectsOptions flag,
const GetNoteOptions options,
1320 const size_t limit = 0,
const size_t offset = 0,
1321 const ListNotesOrder order = ListNotesOrder::NoOrder,
1322 const OrderDirection orderDirection = OrderDirection::Ascending,
1323 const QString & linkedNotebookGuid = QString())
const;
1336 QStringList findNoteLocalUidsWithSearchQuery(
1355 NoteList findNotesWithSearchQuery(
1357 const GetNoteOptions options,
ErrorString & errorDescription)
const;
1387 int tagCount(
ErrorString & errorDescription)
const;
1455 ByUpdateSequenceNumber,
1460 friend QUENTIER_EXPORT QTextStream & operator<<(
1461 QTextStream & strm,
const ListTagsOrder order);
1463 friend QUENTIER_EXPORT QDebug & operator<<(
1464 QDebug & strm,
const ListTagsOrder order);
1494 QList<Tag> listAllTagsPerNote(
1496 const ListObjectsOptions & flag = ListObjectsOption::ListAll,
1497 const size_t limit = 0,
const size_t offset = 0,
1498 const ListTagsOrder & order = ListTagsOrder::NoOrder,
1499 const OrderDirection & orderDirection = OrderDirection::Ascending)
const;
1531 QList<Tag> listAllTags(
1533 const size_t limit = 0,
const size_t offset = 0,
1534 const ListTagsOrder order = ListTagsOrder::NoOrder,
1535 const OrderDirection orderDirection = OrderDirection::Ascending,
1536 const QString & linkedNotebookGuid = QString())
const;
1570 QList<Tag> listTags(
1571 const ListObjectsOptions flag,
1573 const size_t limit = 0,
const size_t offset = 0,
1574 const ListTagsOrder & order = ListTagsOrder::NoOrder,
1575 const OrderDirection orderDirection = OrderDirection::Ascending,
1576 const QString & linkedNotebookGuid = QString())
const;
1616 QList<std::pair<Tag, QStringList>> listTagsWithNoteLocalUids(
1617 const ListObjectsOptions flag,
ErrorString & errorDescription,
1618 const size_t limit = 0,
const size_t offset = 0,
1619 const ListTagsOrder & order = ListTagsOrder::NoOrder,
1620 const OrderDirection orderDirection = OrderDirection::Ascending,
1621 const QString & linkedNotebookGuid = QString())
const;
1648 Tag & tag, QStringList & expungedChildTagLocalUids,
1661 bool expungeNotelessTagsFromLinkedNotebooks(
ErrorString & errorDescription);
1674 int enResourceCount(
ErrorString & errorDescription)
const;
1734 Q_DECLARE_FLAGS(GetResourceOptions, GetResourceOption)
1736 friend QUENTIER_EXPORT QTextStream & operator<<(
1737 QTextStream & strm,
const GetResourceOption option);
1739 friend QUENTIER_EXPORT QDebug & operator<<(
1740 QDebug & strm,
const GetResourceOption option);
1742 friend QUENTIER_EXPORT QTextStream & operator<<(
1743 QTextStream & strm,
const GetResourceOptions options);
1745 friend QUENTIER_EXPORT QDebug & operator<<(
1746 QDebug & strm,
const GetResourceOptions options);
1766 bool findEnResource(
1767 Resource & resource,
const GetResourceOptions options,
1795 int savedSearchCount(
ErrorString & errorDescription)
const;
1852 bool findSavedSearch(
1861 ByUpdateSequenceNumber = 0,
1867 friend QUENTIER_EXPORT QTextStream & operator<<(
1868 QTextStream & strm,
const ListSavedSearchesOrder order);
1870 friend QUENTIER_EXPORT QDebug & operator<<(
1871 QDebug & strm,
const ListSavedSearchesOrder order);
1895 QList<SavedSearch> listAllSavedSearches(
1897 const size_t limit = 0,
const size_t offset = 0,
1898 const ListSavedSearchesOrder order = ListSavedSearchesOrder::NoOrder,
1899 const OrderDirection orderDirection = OrderDirection::Ascending)
const;
1930 QList<SavedSearch> listSavedSearches(
1931 const ListObjectsOptions flag,
ErrorString & errorDescription,
1932 const size_t limit = 0,
const size_t offset = 0,
1933 const ListSavedSearchesOrder order = ListSavedSearchesOrder::NoOrder,
1934 const OrderDirection orderDirection = OrderDirection::Ascending)
const;
1949 bool expungeSavedSearch(
1969 qint32 accountHighUsn(
1970 const QString & linkedNotebookGuid,
ErrorString & errorDescription);
1975 LocalStorageManagerPrivate *
const d_ptr;
1979 Q_DECLARE_OPERATORS_FOR_FLAGS(LocalStorageManager::GetNoteOptions)
1980 Q_DECLARE_OPERATORS_FOR_FLAGS(LocalStorageManager::ListObjectsOptions)
1981 Q_DECLARE_OPERATORS_FOR_FLAGS(LocalStorageManager::StartupOptions)
1982 Q_DECLARE_OPERATORS_FOR_FLAGS(LocalStorageManager::UpdateNoteOptions)
1986 #endif // LIB_QUENTIER_LOCAL_STORAGE_LOCAL_STORAGE_MANAGER_H ListLinkedNotebooksOrder
The ListLinkedNotebooksOrder enum allows to specify the results ordering for methods listing linked n...
Definition: LocalStorageManager.h:715
ListNotebooksOrder
The ListNotebooksOrder allows to specify the results ordering for methods listing notebooks from the ...
Definition: LocalStorageManager.h:496
GetNoteOption
The GetNoteOption enum is a QFlags enum which allows to specify which note fields should be included ...
Definition: LocalStorageManager.h:1063
ListObjectsOption
The ListObjectsOption enum is a QFlags enum which allows to specify the desired local storage element...
Definition: LocalStorageManager.h:139
Definition: LinkedNotebook.h:32
The ErrorString class encapsulates two (or more) strings which are meant to contain translatable (bas...
Definition: ErrorString.h:43
UpdateNoteOption
The UpdateNoteOption enum is a QFlags enum which allows to specify which note fields should be update...
Definition: LocalStorageManager.h:969
Definition: Resource.h:29
ListTagsOrder
The ListTagsOrder enum allows to specify the results ordering for methods listing tags from the local...
Definition: LocalStorageManager.h:1453
NoteCountOption
The NoteCountOption enum is a QFlags enum which allows to specify some options for methods returning ...
Definition: LocalStorageManager.h:815
The Account class encapsulates some details about the account: its name, whether it is local or synch...
Definition: Account.h:39
Definition: Notebook.h:34
ListNotesOrder
The ListNotesOrder enum allows to specify the results ordering for methods listing notes from the loc...
Definition: LocalStorageManager.h:1110
Definition: NoteSearchQuery.h:30
OrderDirection
The OrderDirection enum specifies the direction of ordering of the results for methods listing the ob...
Definition: LocalStorageManager.h:480
Definition: LocalStorageManager.h:55
ListSavedSearchesOrder
The ListSavedSearchesOrder enum allows to specify the results ordering for methods listing saved sear...
Definition: LocalStorageManager.h:1859
Definition: SavedSearch.h:32
StartupOption
The StartupOption enum is a QFlags enum which allows to specify some options to be applied to the loc...
Definition: LocalStorageManager.h:64
GetResourceOption
The GetResourceOption enum is a QFlags enum which allows to specify which resource fields should be i...
Definition: LocalStorageManager.h:1726