diff options
author | Hannah von Reth <hannah.vonreth@owncloud.com> | 2020-12-17 16:13:24 +0300 |
---|---|---|
committer | Kevin Ottens <kevin.ottens@nextcloud.com> | 2020-12-30 18:17:48 +0300 |
commit | 72b6118c3eae93d093d4bd1cb6a7086b7cf15eca (patch) | |
tree | 42c26a0719b0ae6ed8a16f780d86fb7c80a07cc5 /src/common | |
parent | aadda3263381174585a4208be150e98051e3c304 (diff) |
Mark vfs functions as OC_REQUIRED_RESULT
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/asserts.h | 7 | ||||
-rw-r--r-- | src/common/vfs.h | 21 |
2 files changed, 18 insertions, 10 deletions
diff --git a/src/common/asserts.h b/src/common/asserts.h index 38440ce1b..1967717e4 100644 --- a/src/common/asserts.h +++ b/src/common/asserts.h @@ -3,6 +3,13 @@ #include <qglobal.h> +#if 0 && defined(Q_CC_MSVC) +// requires c++2017 +#define OC_REQUIRED_RESULT [[nodiscard]] +#else +#define OC_REQUIRED_RESULT Q_REQUIRED_RESULT +#endif + #if defined(QT_FORCE_ASSERTS) || !defined(QT_NO_DEBUG) #define OC_ASSERT_MSG qFatal #else diff --git a/src/common/vfs.h b/src/common/vfs.h index b7bd22098..c4e9ffa37 100644 --- a/src/common/vfs.h +++ b/src/common/vfs.h @@ -20,6 +20,7 @@ #include <memory> +#include "assert.h" #include "ocsynclib.h" #include "result.h" #include "syncfilestatus.h" @@ -158,24 +159,24 @@ public: * If the remote metadata changes, the local placeholder's metadata should possibly * change as well. */ - virtual Result<void, QString> updateMetadata(const QString &filePath, time_t modtime, qint64 size, const QByteArray &fileId) = 0; + virtual OC_REQUIRED_RESULT Result<void, QString> updateMetadata(const QString &filePath, time_t modtime, qint64 size, const QByteArray &fileId) = 0; /// Create a new dehydrated placeholder. Called from PropagateDownload. - virtual Result<void, QString> createPlaceholder(const SyncFileItem &item) = 0; + virtual OC_REQUIRED_RESULT Result<void, QString> createPlaceholder(const SyncFileItem &item) = 0; /** Convert a hydrated placeholder to a dehydrated one. Called from PropagateDownlaod. * * This is different from delete+create because preserving some file metadata * (like pin states) may be essential for some vfs plugins. */ - virtual Result<void, QString> dehydratePlaceholder(const SyncFileItem &item) = 0; + virtual OC_REQUIRED_RESULT Result<void, QString> dehydratePlaceholder(const SyncFileItem &item) = 0; /** Discovery hook: even unchanged files may need UPDATE_METADATA. * * For instance cfapi vfs wants local hydrated non-placeholder files to * become hydrated placeholder files. */ - virtual bool needsMetadataUpdate(const SyncFileItem &item) = 0; + virtual OC_REQUIRED_RESULT bool needsMetadataUpdate(const SyncFileItem &item) = 0; /** Convert a new file to a hydrated placeholder. * @@ -190,13 +191,13 @@ public: * new placeholder shall supersede, for rename-replace actions with new downloads, * for example. */ - virtual Result<void, QString> convertToPlaceholder( + virtual OC_REQUIRED_RESULT Result<void, QString> convertToPlaceholder( const QString &filename, const SyncFileItem &item, const QString &replacesFile = QString()) = 0; /// Determine whether the file at the given absolute path is a dehydrated placeholder. - virtual bool isDehydratedPlaceholder(const QString &filePath) = 0; + virtual OC_REQUIRED_RESULT bool isDehydratedPlaceholder(const QString &filePath) = 0; /** Similar to isDehydratedPlaceholder() but used from sync discovery. * @@ -205,7 +206,7 @@ public: * * Returning true means that type was fully determined. */ - virtual bool statTypeVirtualFile(csync_file_stat_t *stat, void *stat_data) = 0; + virtual OC_REQUIRED_RESULT bool statTypeVirtualFile(csync_file_stat_t *stat, void *stat_data) = 0; /** Sets the pin state for the item at a path. * @@ -216,7 +217,7 @@ public: * * folderPath is relative to the sync folder. Can be "" for root folder. */ - virtual bool setPinState(const QString &folderPath, PinState state) = 0; + virtual OC_REQUIRED_RESULT bool setPinState(const QString &folderPath, PinState state) = 0; /** Returns the pin state of an item at a path. * @@ -227,7 +228,7 @@ public: * * Returns none on retrieval error. */ - virtual Optional<PinState> pinState(const QString &folderPath) = 0; + virtual OC_REQUIRED_RESULT Optional<PinState> pinState(const QString &folderPath) = 0; /** Returns availability status of an item at a path. * @@ -236,7 +237,7 @@ public: * * folderPath is relative to the sync folder. Can be "" for root folder. */ - virtual AvailabilityResult availability(const QString &folderPath) = 0; + virtual OC_REQUIRED_RESULT AvailabilityResult availability(const QString &folderPath) = 0; public slots: /** Update in-sync state based on SyncFileStatusTracker signal. |