Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/desktop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHannah von Reth <hannah.vonreth@owncloud.com>2020-12-17 16:13:24 +0300
committerKevin Ottens <kevin.ottens@nextcloud.com>2020-12-30 18:17:48 +0300
commit72b6118c3eae93d093d4bd1cb6a7086b7cf15eca (patch)
tree42c26a0719b0ae6ed8a16f780d86fb7c80a07cc5 /src/common
parentaadda3263381174585a4208be150e98051e3c304 (diff)
Mark vfs functions as OC_REQUIRED_RESULT
Diffstat (limited to 'src/common')
-rw-r--r--src/common/asserts.h7
-rw-r--r--src/common/vfs.h21
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.