diff options
Diffstat (limited to 'src/libs/utils/filestreamermanager.h')
-rw-r--r-- | src/libs/utils/filestreamermanager.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/libs/utils/filestreamermanager.h b/src/libs/utils/filestreamermanager.h new file mode 100644 index 0000000000..f86a3db480 --- /dev/null +++ b/src/libs/utils/filestreamermanager.h @@ -0,0 +1,42 @@ +// Copyright (C) 2023 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#pragma once + +#include "utils_global.h" + +#include "filepath.h" + +#include <QObject> + +QT_BEGIN_NAMESPACE +class QByteArray; +QT_END_NAMESPACE + +namespace Utils { + +enum class FileStreamHandle : int {}; + +class QTCREATOR_UTILS_EXPORT FileStreamerManager +{ +public: + static FileStreamHandle copy(const FilePath &source, const FilePath &destination, + const CopyContinuation &cont); + static FileStreamHandle copy(const FilePath &source, const FilePath &destination, + QObject *context, const CopyContinuation &cont); + + static FileStreamHandle read(const FilePath &source, const ReadContinuation &cont = {}); + static FileStreamHandle read(const FilePath &source, QObject *context, + const ReadContinuation &cont = {}); + + static FileStreamHandle write(const FilePath &destination, const QByteArray &data, + const WriteContinuation &cont = {}); + static FileStreamHandle write(const FilePath &destination, const QByteArray &data, + QObject *context, const WriteContinuation &cont = {}); + + // If called from the same thread that started the task, no continuation is going to be called. + static void stop(FileStreamHandle handle); + static void stopAll(); +}; + +} // namespace Utils |