summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@digia.com>2014-07-10 12:56:38 +0200
committerKarsten Heimrich <karsten.heimrich@digia.com>2014-07-10 13:03:47 +0200
commit2d8d458f1043b132c73d179a3d75576552a5eddd (patch)
tree56d673d073ee4fd8d3e041d8de08014fede9564c /src
parent519cf01c4e99fed3315a2d11829a70254ca88dd7 (diff)
Add/remove/implement/reorder methods to match Qt5.
Unify if statements for better reading. Implement missing methods. Adjust {extension, supportsExtension} to tell that our remote does not support any extensions but our local file engine does probably. Change-Id: I6c1c392b531e4060cf12bde8b32eb6c6ec8f1037 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/libs/installer/protocol.h3
-rw-r--r--src/libs/installer/remotefileengine.cpp98
-rw-r--r--src/libs/installer/remotefileengine.h71
-rw-r--r--src/libs/installer/remoteserverconnection.cpp19
4 files changed, 121 insertions, 70 deletions
diff --git a/src/libs/installer/protocol.h b/src/libs/installer/protocol.h
index 8279cc640..4011e3ed8 100644
--- a/src/libs/installer/protocol.h
+++ b/src/libs/installer/protocol.h
@@ -166,6 +166,9 @@ const char QAbstractFileEngineSize[] = "QAbstractFileEngine::size";
const char QAbstractFileEngineSupportsExtension[] = "QAbstractFileEngine::supportsExtension";
const char QAbstractFileEngineExtension[] = "QAbstractFileEngine::extension";
const char QAbstractFileEngineWrite[] = "QAbstractFileEngine::write";
+const char QAbstractFileEngineSyncToDisk[] = "QAbstractFileEngine::syncToDisk";
+const char QAbstractFileEngineRenameOverwrite[] = "QAbstractFileEngine::renameOverwrite";
+const char QAbstractFileEngineFileTime[] = "QAbstractFileEngine::fileTime";
} // namespace Protocol
} // namespace QInstaller
diff --git a/src/libs/installer/remotefileengine.cpp b/src/libs/installer/remotefileengine.cpp
index 776f8301e..02469be34 100644
--- a/src/libs/installer/remotefileengine.cpp
+++ b/src/libs/installer/remotefileengine.cpp
@@ -144,9 +144,20 @@ bool RemoteFileEngine::atEnd() const
QAbstractFileEngine::Iterator* RemoteFileEngine::beginEntryList(QDir::Filters filters,
const QStringList &filterNames)
{
- QStringList entries = entryList(filters, filterNames);
- entries.removeAll(QString());
- return new RemoteFileEngineIterator(filters, filterNames, entries);
+ if (connectToServer()) {
+ QStringList entries = entryList(filters, filterNames);
+ entries.removeAll(QString());
+ return new RemoteFileEngineIterator(filters, filterNames, entries);
+ }
+ return m_fileEngine.beginEntryList(filters, filterNames);
+
+}
+
+QAbstractFileEngine::Iterator* RemoteFileEngine::endEntryList()
+{
+ if (connectToServer())
+ return 0; // right now all other implementations return 0 too
+ return m_fileEngine.endEntryList();
}
/*!
@@ -219,14 +230,8 @@ QString RemoteFileEngine::errorString() const
*/
bool RemoteFileEngine::extension(Extension extension, const ExtensionOption *eo, ExtensionReturn *er)
{
- return false;
- if (extension == UnMapExtension || extension == MapExtension)
+ if (connectToServer())
return false;
-
- if (connectToServer()) {
- return callRemoteMethod<bool>(QString::fromLatin1(Protocol::QAbstractFileEngineExtension),
- static_cast<qint32> (extension));
- }
return m_fileEngine.extension(extension, eo, er);
}
@@ -460,8 +465,7 @@ qint64 RemoteFileEngine::size() const
*/
bool RemoteFileEngine::supportsExtension(Extension extension) const
{
- return false;
- if (extension == UnMapExtension || extension == MapExtension)
+ if ((const_cast<RemoteFileEngine *>(this))->connectToServer())
return false;
return m_fileEngine.supportsExtension(extension);
}
@@ -471,18 +475,18 @@ bool RemoteFileEngine::supportsExtension(Extension extension) const
*/
qint64 RemoteFileEngine::read(char *data, qint64 maxlen)
{
- if (!connectToServer())
- return m_fileEngine.read(data, maxlen);
+ if (connectToServer()) {
+ QPair<qint64, QByteArray> result = callRemoteMethod<QPair<qint64, QByteArray> >
+ (QString::fromLatin1(Protocol::QAbstractFileEngineRead), maxlen);
- QPair<qint64, QByteArray> result = callRemoteMethod<QPair<qint64, QByteArray> >
- (QString::fromLatin1(Protocol::QAbstractFileEngineRead), maxlen);
+ if (result.first <= 0)
+ return result.first;
- if (result.first <= 0)
+ QDataStream dataStream(result.second);
+ dataStream.readRawData(data, result.first);
return result.first;
-
- QDataStream dataStream(result.second);
- dataStream.readRawData(data, result.first);
- return result.first;
+ }
+ return m_fileEngine.read(data, maxlen);
}
/*!
@@ -490,18 +494,18 @@ qint64 RemoteFileEngine::read(char *data, qint64 maxlen)
*/
qint64 RemoteFileEngine::readLine(char *data, qint64 maxlen)
{
- if (!connectToServer())
- return m_fileEngine.readLine(data, maxlen);
+ if (connectToServer()) {
+ QPair<qint64, QByteArray> result = callRemoteMethod<QPair<qint64, QByteArray> >
+ (QString::fromLatin1(Protocol::QAbstractFileEngineReadLine), maxlen);
- QPair<qint64, QByteArray> result = callRemoteMethod<QPair<qint64, QByteArray> >
- (QString::fromLatin1(Protocol::QAbstractFileEngineReadLine), maxlen);
+ if (result.first <= 0)
+ return result.first;
- if (result.first <= 0)
+ QDataStream dataStream(result.second);
+ dataStream.readRawData(data, result.first);
return result.first;
-
- QDataStream dataStream(result.second);
- dataStream.readRawData(data, result.first);
- return result.first;
+ }
+ return m_fileEngine.readLine(data, maxlen);
}
/*!
@@ -509,11 +513,37 @@ qint64 RemoteFileEngine::readLine(char *data, qint64 maxlen)
*/
qint64 RemoteFileEngine::write(const char *data, qint64 len)
{
- if (!connectToServer())
- return m_fileEngine.write(data, len);
+ if (connectToServer()) {
+ QByteArray ba(data, len);
+ return callRemoteMethod<qint64>(QString::fromLatin1(Protocol::QAbstractFileEngineWrite), ba);
+ }
+ return m_fileEngine.write(data, len);
+}
+
+bool RemoteFileEngine::syncToDisk()
+{
+ if (connectToServer())
+ return callRemoteMethod<bool>(QString::fromLatin1(Protocol::QAbstractFileEngineSyncToDisk));
+ return m_fileEngine.syncToDisk();
+}
+
+bool RemoteFileEngine::renameOverwrite(const QString &newName)
+{
+ if (connectToServer()) {
+ return callRemoteMethod<bool>
+ (QString::fromLatin1(Protocol::QAbstractFileEngineRenameOverwrite), newName);
+ }
+ return m_fileEngine.renameOverwrite(newName);
+}
- QByteArray ba(data, len);
- return callRemoteMethod<qint64>(QString::fromLatin1(Protocol::QAbstractFileEngineWrite), ba);
+QDateTime RemoteFileEngine::fileTime(FileTime time) const
+{
+ if ((const_cast<RemoteFileEngine *>(this))->connectToServer()) {
+ return callRemoteMethod<QDateTime>
+ (QString::fromLatin1(Protocol::QAbstractFileEngineFileTime),
+ static_cast<qint32> (time));
+ }
+ return m_fileEngine.fileTime(time);
}
} // namespace QInstaller
diff --git a/src/libs/installer/remotefileengine.h b/src/libs/installer/remotefileengine.h
index 3e57d963a..79d8fda68 100644
--- a/src/libs/installer/remotefileengine.h
+++ b/src/libs/installer/remotefileengine.h
@@ -66,39 +66,50 @@ public:
RemoteFileEngine();
~RemoteFileEngine();
+ bool open(QIODevice::OpenMode mode) Q_DECL_OVERRIDE;
+ bool close() Q_DECL_OVERRIDE;
+ bool flush() Q_DECL_OVERRIDE;
+ bool syncToDisk() Q_DECL_OVERRIDE;
+ qint64 size() const Q_DECL_OVERRIDE;
+ qint64 pos() const Q_DECL_OVERRIDE;
+ bool seek(qint64 offset) Q_DECL_OVERRIDE;
+ bool isSequential() const Q_DECL_OVERRIDE;
+ bool remove() Q_DECL_OVERRIDE;
+ bool copy(const QString &newName) Q_DECL_OVERRIDE;
+ bool rename(const QString &newName) Q_DECL_OVERRIDE;
+ bool renameOverwrite(const QString &newName) Q_DECL_OVERRIDE;
+ bool link(const QString &newName) Q_DECL_OVERRIDE;
+ bool mkdir(const QString &dirName, bool createParentDirectories) const Q_DECL_OVERRIDE;
+ bool rmdir(const QString &dirName, bool recurseParentDirectories) const Q_DECL_OVERRIDE;
+ bool setSize(qint64 size) Q_DECL_OVERRIDE;
+ bool caseSensitive() const Q_DECL_OVERRIDE;
+ bool isRelativePath() const Q_DECL_OVERRIDE;
+ QStringList entryList(QDir::Filters filters, const QStringList &filterNames) const Q_DECL_OVERRIDE;
+ FileFlags fileFlags(FileFlags type = FileInfoAll) const Q_DECL_OVERRIDE;
+ bool setPermissions(uint perms) Q_DECL_OVERRIDE;
+ QString fileName(FileName file = DefaultName) const Q_DECL_OVERRIDE;
+ uint ownerId(FileOwner owner) const Q_DECL_OVERRIDE;
+ QString owner(FileOwner owner) const Q_DECL_OVERRIDE;
+ QDateTime fileTime(FileTime time) const Q_DECL_OVERRIDE;
+ void setFileName(const QString &fileName) Q_DECL_OVERRIDE;
+ int handle() const Q_DECL_OVERRIDE;
bool atEnd() const;
- Iterator *beginEntryList(QDir::Filters filters, const QStringList &filterNames);
- bool caseSensitive() const;
- bool close();
- bool copy(const QString &newName);
- QStringList entryList(QDir::Filters filters, const QStringList &filterNames) const;
+ uchar *map(qint64, qint64, QFile::MemoryMapFlags) { return 0; }
+ bool unmap(uchar *) { return true; }
+
+ Iterator *beginEntryList(QDir::Filters filters, const QStringList &filterNames) Q_DECL_OVERRIDE;
+ Iterator *endEntryList() Q_DECL_OVERRIDE;
+
+ qint64 read(char *data, qint64 maxlen) Q_DECL_OVERRIDE;
+ qint64 readLine(char *data, qint64 maxlen) Q_DECL_OVERRIDE;
+ qint64 write(const char *data, qint64 len) Q_DECL_OVERRIDE;
+
QFile::FileError error() const;
QString errorString() const;
- bool extension(Extension extension, const ExtensionOption *option = 0, ExtensionReturn *output = 0);
- FileFlags fileFlags(FileFlags type = FileInfoAll) const;
- QString fileName(FileName file = DefaultName) const;
- bool flush();
- int handle() const;
- bool isRelativePath() const;
- bool isSequential() const;
- bool link(const QString &newName);
- bool mkdir(const QString &dirName, bool createParentDirectories) const;
- bool open(QIODevice::OpenMode mode);
- QString owner(FileOwner owner) const;
- uint ownerId(FileOwner owner) const;
- qint64 pos() const;
- qint64 read(char *data, qint64 maxlen);
- qint64 readLine(char *data, qint64 maxlen);
- bool remove();
- bool rename(const QString &newName);
- bool rmdir(const QString &dirName, bool recurseParentDirectories) const;
- bool seek(qint64 offset);
- void setFileName(const QString &fileName);
- bool setPermissions(uint perms);
- bool setSize(qint64 size);
- qint64 size() const;
- bool supportsExtension(Extension extension) const;
- qint64 write(const char *data, qint64 len);
+
+ bool extension(Extension extension, const ExtensionOption *option = 0,
+ ExtensionReturn *output = 0) Q_DECL_OVERRIDE;
+ bool supportsExtension(Extension extension) const Q_DECL_OVERRIDE;
private:
QFSFileEngine m_fileEngine;
diff --git a/src/libs/installer/remoteserverconnection.cpp b/src/libs/installer/remoteserverconnection.cpp
index 9a2f2e7b0..6acde1d7b 100644
--- a/src/libs/installer/remoteserverconnection.cpp
+++ b/src/libs/installer/remoteserverconnection.cpp
@@ -507,16 +507,23 @@ void RemoteServerConnection::handleQFSFileEngine(const QString &command, QDataSt
sendData(stream, m_engine->setSize(size));
} else if (command == QLatin1String(Protocol::QAbstractFileEngineSize)) {
sendData(stream, m_engine->size());
- } else if (command == QLatin1String(Protocol::QAbstractFileEngineSupportsExtension)) {
- // Implemented client side
- } else if (command == QLatin1String(Protocol::QAbstractFileEngineExtension)) {
- qint32 extension;
- data >>extension;
- sendData(stream, m_engine->extension(static_cast<QAbstractFileEngine::Extension> (extension)));
+ } else if ((command == QLatin1String(Protocol::QAbstractFileEngineSupportsExtension))
+ || (command == QLatin1String(Protocol::QAbstractFileEngineExtension))) {
+ // Implemented client side.
} else if (command == QLatin1String(Protocol::QAbstractFileEngineWrite)) {
QByteArray content;
data >> content;
sendData(stream, m_engine->write(content.data(), content.size()));
+ } else if (command == QLatin1String(Protocol::QAbstractFileEngineSyncToDisk)) {
+ sendData(stream, m_engine->syncToDisk());
+ } else if (command == QLatin1String(Protocol::QAbstractFileEngineRenameOverwrite)) {
+ QString newFilename;
+ data >> newFilename;
+ sendData(stream, m_engine->renameOverwrite(newFilename));
+ } else if (command == QLatin1String(Protocol::QAbstractFileEngineFileTime)) {
+ qint32 filetime;
+ data >> filetime;
+ sendData(stream, m_engine->fileTime(static_cast<QAbstractFileEngine::FileTime> (filetime)));
} else if (!command.isEmpty()) {
qDebug() << "Unknown QAbstractFileEngine command:" << command;
}