57 enum class StartupOption
59 ClearDatabase = 1 << 1,
78 enum class ListObjectsFilter
94 std::optional<ListObjectsFilter> m_locallyModifiedFilter;
95 std::optional<ListObjectsFilter> m_withGuidFilter;
96 std::optional<ListObjectsFilter> m_localOnlyFilter;
97 std::optional<ListObjectsFilter> m_locallyFavoritedFilter;
110 std::optional<ListObjectsFilter> m_locallyModifiedFilter;
111 std::optional<ListObjectsFilter> m_locallyFavoritedFilter;
122 enum class OrderDirection
136 enum class ListNotebooksOrder
139 ByUpdateSequenceNumber,
142 ByModificationTimestamp
153 enum class ListLinkedNotebooksOrder
156 ByUpdateSequenceNumber,
161 friend QUENTIER_EXPORT QTextStream & operator<<(
162 QTextStream & strm, ListLinkedNotebooksOrder order);
164 friend QUENTIER_EXPORT QDebug & operator<<(
165 QDebug & dbg, ListLinkedNotebooksOrder order);
169 enum class ListTagsOrder
172 ByUpdateSequenceNumber,
176 friend QUENTIER_EXPORT QTextStream & operator<<(
177 QTextStream & strm, ListTagsOrder order);
179 friend QUENTIER_EXPORT QDebug & operator<<(
180 QDebug & dbg, ListTagsOrder order);
184 enum class ListNotesOrder
187 ByUpdateSequenceNumber,
190 ByModificationTimestamp,
199 friend QUENTIER_EXPORT QTextStream & operator<<(
200 QTextStream & strm, ListNotesOrder order);
202 friend QUENTIER_EXPORT QDebug & operator<<(
203 QDebug & dbg, ListNotesOrder order);
207 enum class ListSavedSearchesOrder
210 ByUpdateSequenceNumber,
215 friend QUENTIER_EXPORT QTextStream & operator<<(
216 QTextStream & strm, ListSavedSearchesOrder order);
218 friend QUENTIER_EXPORT QDebug & operator<<(
219 QDebug & dbg, ListSavedSearchesOrder order);
230 ParticularLinkedNotebooks
248 OrderDirection m_direction = OrderDirection::Ascending;
255 ListNotebooksOrder m_order = ListNotebooksOrder::NoOrder;
270 ListLinkedNotebooksOrder m_order = ListLinkedNotebooksOrder::NoOrder;
283 ListSavedSearchesOrder m_order = ListSavedSearchesOrder::NoOrder;
296 ListNotesOrder m_order = ListNotesOrder::NoOrder;
321 ListTagsOrder m_order = ListTagsOrder::NoOrder;
335 enum class NoteCountOption
337 IncludeNonDeletedNotes = 1 << 1,
338 IncludeDeletedNotes = 1 << 2
356 enum class UpdateNoteOption
358 UpdateResourceMetadata = 1 << 1,
359 UpdateResourceBinaryData = 1 << 2,
378 enum class FetchNoteOption
380 WithResourceMetadata = 1 << 1,
381 WithResourceBinaryData = 1 << 2
383 Q_DECLARE_FLAGS(FetchNoteOptions, FetchNoteOption)
385 friend QUENTIER_EXPORT QTextStream & operator<<(
386 QTextStream & strm, FetchNoteOption option);
388 friend QUENTIER_EXPORT QDebug & operator<<(
389 QDebug & dbg, FetchNoteOption option);
391 friend QUENTIER_EXPORT QTextStream & operator<<(
392 QTextStream & strm, FetchNoteOptions options);
394 friend QUENTIER_EXPORT QDebug & operator<<(
395 QDebug & dbg, FetchNoteOptions options);
399 enum class FetchResourceOption
401 WithBinaryData = 1 << 1
403 Q_DECLARE_FLAGS(FetchResourceOptions, FetchResourceOption)
405 friend QUENTIER_EXPORT QTextStream & operator<<(
406 QTextStream & strm, FetchResourceOption option);
408 friend QUENTIER_EXPORT QDebug & operator<<(
409 QDebug & dbg, FetchResourceOption option);
411 friend QUENTIER_EXPORT QTextStream & operator<<(
412 QTextStream & strm, FetchResourceOptions options);
414 friend QUENTIER_EXPORT QDebug & operator<<(
415 QDebug & dbg, FetchResourceOptions options);
419 enum class HighestUsnOption
421 WithinUserOwnContent,
422 WithinUserOwnContentAndLinkedNotebooks
425 friend QUENTIER_EXPORT QTextStream & operator<<(
426 QTextStream & strm, HighestUsnOption option);
428 friend QUENTIER_EXPORT QDebug & operator<<(
429 QDebug & dbg, HighestUsnOption option);
433 [[nodiscard]]
virtual QFuture<bool> isVersionTooHigh()
const = 0;
434 [[nodiscard]]
virtual QFuture<bool> requiresUpgrade()
const = 0;
435 [[nodiscard]]
virtual QFuture<QList<IPatchPtr>> requiredPatches()
const = 0;
436 [[nodiscard]]
virtual QFuture<qint32> version()
const = 0;
437 [[nodiscard]]
virtual QFuture<qint32> highestSupportedVersion()
const = 0;
440 [[nodiscard]]
virtual QFuture<quint32> userCount()
const = 0;
441 [[nodiscard]]
virtual QFuture<void> putUser(qevercloud::User user) = 0;
443 [[nodiscard]]
virtual QFuture<std::optional<qevercloud::User>> findUserById(
444 qevercloud::UserID userId)
const = 0;
446 [[nodiscard]]
virtual QFuture<void> expungeUserById(
447 qevercloud::UserID userId) = 0;
450 [[nodiscard]]
virtual QFuture<quint32> notebookCount()
const = 0;
452 [[nodiscard]]
virtual QFuture<void> putNotebook(
453 qevercloud::Notebook notebook) = 0;
455 [[nodiscard]]
virtual QFuture<std::optional<qevercloud::Notebook>>
456 findNotebookByLocalId(QString notebookLocalId)
const = 0;
458 [[nodiscard]]
virtual QFuture<std::optional<qevercloud::Notebook>>
459 findNotebookByGuid(qevercloud::Guid guid)
const = 0;
461 [[nodiscard]]
virtual QFuture<std::optional<qevercloud::Notebook>>
463 QString notebookName,
464 std::optional<qevercloud::Guid> linkedNotebookGuid =
465 std::nullopt)
const = 0;
467 [[nodiscard]]
virtual QFuture<std::optional<qevercloud::Notebook>>
468 findDefaultNotebook()
const = 0;
470 [[nodiscard]]
virtual QFuture<void> expungeNotebookByLocalId(
471 QString notebookLocalId) = 0;
473 [[nodiscard]]
virtual QFuture<void> expungeNotebookByGuid(
474 qevercloud::Guid notebookGuid) = 0;
476 [[nodiscard]]
virtual QFuture<void> expungeNotebookByName(
478 std::optional<qevercloud::Guid> linkedNotebookGuid = std::nullopt) = 0;
480 [[nodiscard]]
virtual QFuture<QList<qevercloud::Notebook>> listNotebooks(
481 ListNotebooksOptions options = {})
const = 0;
483 [[nodiscard]]
virtual QFuture<QList<qevercloud::SharedNotebook>>
484 listSharedNotebooks(qevercloud::Guid notebookGuid = {})
const = 0;
486 [[nodiscard]]
virtual QFuture<QSet<qevercloud::Guid>> listNotebookGuids(
487 ListGuidsFilters filters,
488 std::optional<qevercloud::Guid> linkedNotebookGuid = {})
const = 0;
491 [[nodiscard]]
virtual QFuture<quint32> linkedNotebookCount()
const = 0;
493 [[nodiscard]]
virtual QFuture<void> putLinkedNotebook(
494 qevercloud::LinkedNotebook linkedNotebook) = 0;
496 [[nodiscard]]
virtual QFuture<std::optional<qevercloud::LinkedNotebook>>
497 findLinkedNotebookByGuid(qevercloud::Guid guid)
const = 0;
499 [[nodiscard]]
virtual QFuture<void> expungeLinkedNotebookByGuid(
500 qevercloud::Guid guid) = 0;
502 [[nodiscard]]
virtual QFuture<QList<qevercloud::LinkedNotebook>>
503 listLinkedNotebooks(ListLinkedNotebooksOptions options = {})
const = 0;
506 [[nodiscard]]
virtual QFuture<quint32> noteCount(
507 NoteCountOptions options = NoteCountOptions(
508 NoteCountOption::IncludeNonDeletedNotes))
const = 0;
510 [[nodiscard]]
virtual QFuture<quint32> noteCountPerNotebookLocalId(
511 QString notebookLocalId,
512 NoteCountOptions options = NoteCountOptions(
513 NoteCountOption::IncludeNonDeletedNotes))
const = 0;
515 [[nodiscard]]
virtual QFuture<quint32> noteCountPerTagLocalId(
517 NoteCountOptions options = NoteCountOptions(
518 NoteCountOption::IncludeNonDeletedNotes))
const = 0;
520 [[nodiscard]]
virtual QFuture<QHash<QString, quint32>> noteCountsPerTags(
521 ListTagsOptions listTagsOptions = {},
522 NoteCountOptions options = NoteCountOptions(
523 NoteCountOption::IncludeNonDeletedNotes))
const = 0;
525 [[nodiscard]]
virtual QFuture<quint32> noteCountPerNotebookAndTagLocalIds(
526 QStringList notebookLocalIds, QStringList tagLocalIds,
527 NoteCountOptions options = NoteCountOptions(
528 NoteCountOption::IncludeNonDeletedNotes))
const = 0;
530 [[nodiscard]]
virtual QFuture<void> putNote(qevercloud::Note note) = 0;
532 [[nodiscard]]
virtual QFuture<void> updateNote(
533 qevercloud::Note note, UpdateNoteOptions options) = 0;
535 [[nodiscard]]
virtual QFuture<std::optional<qevercloud::Note>>
537 QString noteLocalId, FetchNoteOptions options)
const = 0;
539 [[nodiscard]]
virtual QFuture<std::optional<qevercloud::Note>>
541 qevercloud::Guid noteGuid, FetchNoteOptions options)
const = 0;
543 [[nodiscard]]
virtual QFuture<QList<qevercloud::Note>> listNotes(
544 FetchNoteOptions fetchOptions,
545 ListNotesOptions listOptions = {})
const = 0;
547 [[nodiscard]]
virtual QFuture<QList<qevercloud::Note>>
548 listNotesPerNotebookLocalId(
549 QString notebookLocalId, FetchNoteOptions fetchOptions,
550 ListNotesOptions listOptions = {})
const = 0;
552 [[nodiscard]]
virtual QFuture<QList<qevercloud::Note>>
553 listNotesPerTagLocalId(
554 QString tagLocalId, FetchNoteOptions fetchOptions,
555 ListNotesOptions listOptions = {})
const = 0;
557 [[nodiscard]]
virtual QFuture<QList<qevercloud::Note>>
558 listNotesPerNotebookAndTagLocalIds(
559 QStringList notebookLocalIds, QStringList tagLocalIds,
560 FetchNoteOptions fetchOptions,
561 ListNotesOptions listOptions = {})
const = 0;
563 [[nodiscard]]
virtual QFuture<QList<qevercloud::Note>> listNotesByLocalIds(
564 QStringList noteLocalIds, FetchNoteOptions fetchOptions,
565 ListNotesOptions listOptions = {})
const = 0;
567 [[nodiscard]]
virtual QFuture<QSet<qevercloud::Guid>> listNoteGuids(
568 ListGuidsFilters filters,
569 std::optional<qevercloud::Guid> linkedNotebookGuid = {})
const = 0;
571 [[nodiscard]]
virtual QFuture<QList<qevercloud::Note>> queryNotes(
572 NoteSearchQuery query, FetchNoteOptions fetchOptions)
const = 0;
574 [[nodiscard]]
virtual QFuture<QStringList> queryNoteLocalIds(
575 NoteSearchQuery query)
const = 0;
577 [[nodiscard]]
virtual QFuture<void> expungeNoteByLocalId(
578 QString noteLocalId) = 0;
580 [[nodiscard]]
virtual QFuture<void> expungeNoteByGuid(
581 qevercloud::Guid noteGuid) = 0;
584 [[nodiscard]]
virtual QFuture<quint32> tagCount()
const = 0;
585 [[nodiscard]]
virtual QFuture<void> putTag(qevercloud::Tag tag) = 0;
587 [[nodiscard]]
virtual QFuture<std::optional<qevercloud::Tag>>
588 findTagByLocalId(QString tagLocalId)
const = 0;
590 [[nodiscard]]
virtual QFuture<std::optional<qevercloud::Tag>> findTagByGuid(
591 qevercloud::Guid tagGuid)
const = 0;
593 [[nodiscard]]
virtual QFuture<std::optional<qevercloud::Tag>> findTagByName(
595 std::optional<qevercloud::Guid> linkedNotebookGuid =
596 std::nullopt)
const = 0;
598 [[nodiscard]]
virtual QFuture<QList<qevercloud::Tag>> listTags(
599 ListTagsOptions options = {})
const = 0;
601 [[nodiscard]]
virtual QFuture<QList<qevercloud::Tag>>
602 listTagsPerNoteLocalId(
603 QString noteLocalId, ListTagsOptions options = {})
const = 0;
605 [[nodiscard]]
virtual QFuture<QSet<qevercloud::Guid>> listTagGuids(
606 ListGuidsFilters filters,
607 std::optional<qevercloud::Guid> linkedNotebookGuid = {})
const = 0;
609 [[nodiscard]]
virtual QFuture<void> expungeTagByLocalId(
610 QString tagLocalId) = 0;
612 [[nodiscard]]
virtual QFuture<void> expungeTagByGuid(
613 qevercloud::Guid tagGuid) = 0;
615 [[nodiscard]]
virtual QFuture<void> expungeTagByName(
617 std::optional<qevercloud::Guid> linkedNotebookGuid = std::nullopt) = 0;
620 [[nodiscard]]
virtual QFuture<quint32> resourceCount(
621 NoteCountOptions options = NoteCountOptions(
622 NoteCountOption::IncludeNonDeletedNotes))
const = 0;
624 [[nodiscard]]
virtual QFuture<quint32> resourceCountPerNoteLocalId(
625 QString noteLocalId)
const = 0;
627 [[nodiscard]]
virtual QFuture<void> putResource(
628 qevercloud::Resource resource) = 0;
630 [[nodiscard]]
virtual QFuture<std::optional<qevercloud::Resource>>
631 findResourceByLocalId(
632 QString resourceLocalId,
633 FetchResourceOptions options = {})
const = 0;
635 [[nodiscard]]
virtual QFuture<std::optional<qevercloud::Resource>>
637 qevercloud::Guid resourceGuid,
638 FetchResourceOptions options = {})
const = 0;
640 [[nodiscard]]
virtual QFuture<void> expungeResourceByLocalId(
641 QString resourceLocalId) = 0;
643 [[nodiscard]]
virtual QFuture<void> expungeResourceByGuid(
644 qevercloud::Guid resourceGuid) = 0;
647 [[nodiscard]]
virtual QFuture<quint32> savedSearchCount()
const = 0;
649 [[nodiscard]]
virtual QFuture<void> putSavedSearch(
650 qevercloud::SavedSearch search) = 0;
652 [[nodiscard]]
virtual QFuture<std::optional<qevercloud::SavedSearch>>
653 findSavedSearchByLocalId(QString savedSearchLocalId)
const = 0;
655 [[nodiscard]]
virtual QFuture<std::optional<qevercloud::SavedSearch>>
656 findSavedSearchByGuid(qevercloud::Guid guid)
const = 0;
658 [[nodiscard]]
virtual QFuture<std::optional<qevercloud::SavedSearch>>
659 findSavedSearchByName(QString name)
const = 0;
661 [[nodiscard]]
virtual QFuture<QList<qevercloud::SavedSearch>>
662 listSavedSearches(ListSavedSearchesOptions options = {})
const = 0;
664 [[nodiscard]]
virtual QFuture<QSet<qevercloud::Guid>> listSavedSearchGuids(
665 ListGuidsFilters filters)
const = 0;
667 [[nodiscard]]
virtual QFuture<void> expungeSavedSearchByLocalId(
668 QString savedSearchLocalId) = 0;
670 [[nodiscard]]
virtual QFuture<void> expungeSavedSearchByGuid(
671 qevercloud::Guid guid) = 0;
674 [[nodiscard]]
virtual QFuture<qint32> highestUpdateSequenceNumber(
675 HighestUsnOption option)
const = 0;
677 [[nodiscard]]
virtual QFuture<qint32> highestUpdateSequenceNumber(
678 qevercloud::Guid linkedNotebookGuid)
const = 0;