-
Notifications
You must be signed in to change notification settings - Fork 28
Description
This issue tracks the progress and suggestions for the next major version of QArchive. The major focus for the next major version should be use of concurrency and good public api, without having separate classes like MemoryExtractor and DiskExtractor which can be combined into a single class anyways.
Currently the wrapper does not use concurrency, it uses the main thread or a separate worker thread which is fine for now, but use of concurrency can increase the performance into many folds than using raw libarchive with Qt.
I've planned to use QFutures to get concurrency with extraction and compression. It should be pretty straight forward.
I've come up with a sort of a syntax for v3.x, if any of you have suggestion then please do tell,
QArchive::QArchive archive;
// Give a path to archive
archive.setArchive("/path/to/archive.tar.gz");
// Give a QIODevice
archive.setArchive(QIODevice*);
archive.setMode(QArchive::Read);
// or write, aka compress
archive.setMode(QArchive::Write);
// Extractor and Compressor methods should be condensed.
// like addFiles and removeFiles, filters and basePath
archive.start();
// QArchive::finished will have a pointer to memory file, it will be null in
// case of write mode.
TODO
- Test v2.x with concurrency.
- Better testing
- Make it easy to install using Qt installer (Partially done, still need more time)
- Use of v2 Docs and translate to multiple languages
- Versioned docs in v2.x
More coming soon.