diff options
author | Dan Vrátil <dvratil@redhat.com> | 2015-03-30 17:49:26 +0200 |
---|---|---|
committer | Dan Vrátil <dvratil@redhat.com> | 2015-03-30 17:49:28 +0200 |
commit | 8f2fed8d2a1b23a8f318047b6592ad64b6ecbd22 (patch) | |
tree | 6f8d5ea2dc8695dfc6c3c641c2ef044ad5810bd8 /async/autotests/CMakeLists.txt | |
parent | 1d946c166cc7a4a2556e8bfaab7dc66695b555e1 (diff) | |
download | sink-8f2fed8d2a1b23a8f318047b6592ad64b6ecbd22.tar.gz sink-8f2fed8d2a1b23a8f318047b6592ad64b6ecbd22.zip |
Async: initial support for native chaining of KJobs
It is now possible use KJob-derived jobs with libasync without having to write
lambda wrappers.
auto job = Async::start<ReturnType, MyKJob, MyKJob::result, Args ...)
.then<ReturnType, OtherKJob, OtherKJob::result, PrevKJobReturnType>();
job.exec(arg1, arg2, ...);
The reason for this approach (instead of taking KJob* as an argument is that
we usually want the KJob ctor arguments to depend on result of previous job.
At least in case of Async::start() however it makes sense to support passing
KJob* as an argument (not yet implemented).
In future we should also support custom error handlers.
The KJob integration is build-time optional, but enabled by default (pass
-DWITH_KJOB=FALSE to CMake to disable).
Adds KCoreAddons dependency.
Diffstat (limited to 'async/autotests/CMakeLists.txt')
-rw-r--r-- | async/autotests/CMakeLists.txt | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/async/autotests/CMakeLists.txt b/async/autotests/CMakeLists.txt index a2bedc8..8116f13 100644 --- a/async/autotests/CMakeLists.txt +++ b/async/autotests/CMakeLists.txt | |||
@@ -2,4 +2,10 @@ include_directories(../src ${CMAKE_CURRENT_BINARY_DIR}) | |||
2 | 2 | ||
3 | add_executable(asynctest asynctest.cpp) | 3 | add_executable(asynctest asynctest.cpp) |
4 | qt5_use_modules(asynctest Test) | 4 | qt5_use_modules(asynctest Test) |
5 | target_link_libraries(asynctest akonadi2async Qt5::Core Qt5::Test) \ No newline at end of file | 5 | target_link_libraries(asynctest akonadi2async Qt5::Core Qt5::Test) |
6 | |||
7 | if (WITH_KJOB) | ||
8 | add_executable(kjobtest kjobtest.cpp testkjob.cpp) | ||
9 | qt5_use_modules(kjobtest Test) | ||
10 | target_link_libraries(kjobtest akonadi2async Qt5::Core Qt5::Test KF5::CoreAddons) | ||
11 | endif () \ No newline at end of file | ||