|author||João Abecasis <firstname.lastname@example.org>||2012-02-17 20:09:17 +0100|
|committer||Qt by Nokia <email@example.com>||2012-02-22 00:07:31 +0100|
Drop file-engine abstraction from public API
This abstraction imposed serious performance penalties and is being dropped from the public API. In particular, by allowing file names to be arbitrarily hijacked by different file engines, and requiring engines to be instantiated in order to decide, it imposed unnecessary overhead on all file operations. Another flaw in the design with direct impact on performance is how engines have no way to provide (or retain) additional information obtained when querying the filesystem. In many places this has meant repeated operations on the file system, where useful information is immediately discarded to be queried again subsequently. For Qt 4.8 a major refactoring of the code base took place to allow bypassing the file-engine abstraction in select places, with considerable performance gains observed. In Qt 5 it is expected we'll be able to take this further, reaping even more benefits, but the abstraction has to go. [Dropping this now does not preclude that virtual file systems make an appearance in Qt at a later point in Qt 5's lifecycle. Hopefully with a new and improved abstraction.] Forward declarations for QFileExtension(Result) were dropped, as the classes were never used or defined. Tests using "internalized" classes will only fully run on developer builds. QFSFileEngine was removed altogether from exception safety test, as it isn't its intent to test internal API. Change-Id: Ie910e6c2628be202ea9e05366b091d6d529b246b Reviewed-by: Thiago Macieira <firstname.lastname@example.org> Reviewed-by: Lars Knoll <email@example.com>
Diffstat (limited to 'dist')
1 files changed, 5 insertions, 0 deletions
diff --git a/dist/changes-5.0.0 b/dist/changes-5.0.0
index 2f34ca5d20..292f5ffba0 100644
@@ -207,6 +207,11 @@ information about a particular change.
- QDir::NoDotAndDotDot is QDir::NoDot|QDir::NoDotDot therefore there is no need
to use or check both.
+- QFSFileEngine, QAbstractFileEngine, QAbstractFileEngineIterator and
+ QAbstractFileEngineHandler were removed from public API and are no longer
+ exported. They may temporarily live as private implementation details, but
+ they may be altogether dropped or otherwise changed at will in the future.
* toShort(), toUShort(), toInt(), toUInt(), toLongLong() and toULongLong() no
longer take a parameter for base, they will only perform localised base 10