summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/fileio.h
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@digia.com>2014-06-23 13:15:15 +0200
committerKarsten Heimrich <karsten.heimrich@digia.com>2014-06-24 10:31:08 +0200
commit924ebcdbc9b9e590a5f0905941e2d05ac34d4be2 (patch)
treee57fb26ece9f67e1c59f0967198350d0a511637a /src/libs/installer/fileio.h
parent4d8d708f98172e0e49fb2f0aad2e22d7798318e5 (diff)
Split out the file IO stuff and adjust other files respectively.
Also adjust the API to use QFileDevice instead of QIODevice to make clear we just operate on files here and not on any possible device like sockets, processes etc... Change-Id: I4ecbb6e244fe4bb666ed12e62f9f5586bc1347f0 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Diffstat (limited to 'src/libs/installer/fileio.h')
-rw-r--r--src/libs/installer/fileio.h85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/libs/installer/fileio.h b/src/libs/installer/fileio.h
new file mode 100644
index 000000000..274a62500
--- /dev/null
+++ b/src/libs/installer/fileio.h
@@ -0,0 +1,85 @@
+/**************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Installer Framework.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+**************************************************************************/
+
+#ifndef FILEIO_H
+#define FILEIO_H
+
+#include "installer_global.h"
+
+QT_BEGIN_NAMESPACE
+class QByteArray;
+class QFileDevice;
+class QString;
+QT_END_NAMESPACE
+
+template <typename T>
+class Range;
+
+namespace QInstaller {
+
+qint64 INSTALLER_EXPORT retrieveInt64(QFileDevice *in);
+void INSTALLER_EXPORT appendInt64(QFileDevice *out, qint64 n);
+
+Range<qint64> INSTALLER_EXPORT retrieveInt64Range(QFileDevice *in);
+void INSTALLER_EXPORT appendInt64Range(QFileDevice *out, const Range<qint64> &r);
+
+QString INSTALLER_EXPORT retrieveString(QFileDevice *in);
+void INSTALLER_EXPORT appendString(QFileDevice *out, const QString &str);
+
+QByteArray INSTALLER_EXPORT retrieveByteArray(QFileDevice *in);
+void INSTALLER_EXPORT appendByteArray(QFileDevice *out, const QByteArray &ba);
+
+QByteArray INSTALLER_EXPORT retrieveData(QFileDevice *in, qint64 size);
+void INSTALLER_EXPORT appendData(QFileDevice *out, QFileDevice *in, qint64 size);
+
+void INSTALLER_EXPORT openForRead(QFileDevice *dev);
+void INSTALLER_EXPORT openForWrite(QFileDevice *dev);
+void INSTALLER_EXPORT openForAppend(QFileDevice *dev);
+
+qint64 INSTALLER_EXPORT blockingRead(QFileDevice *in, char *buffer, qint64 size);
+qint64 INSTALLER_EXPORT blockingCopy(QFileDevice *in, QFileDevice *out, qint64 size);
+
+qint64 INSTALLER_EXPORT blockingWrite(QFileDevice *out, const QByteArray &data);
+qint64 INSTALLER_EXPORT blockingWrite(QFileDevice *out, const char *data, qint64 size);
+
+} // namespace QInstaller
+
+#endif // FILEIO_H