QtPromise merge requestshttps://staging.gitlab.com/julrich/QtPromise/-/merge_requests2017-09-26T00:12:57Zhttps://staging.gitlab.com/julrich/QtPromise/-/merge_requests/31Feature/immediate delete2017-09-26T00:12:57Zusername-removed-547784Feature/immediate deleteSwitches from using `QObject::deleteLater()` to immediately deleting objects when their last `QSharedPointer` is deleted.
This has proven necessary because with a deferred delete, a callback can still be invoked between
the destruction ...Switches from using `QObject::deleteLater()` to immediately deleting objects when their last `QSharedPointer` is deleted.
This has proven necessary because with a deferred delete, a callback can still be invoked between
the destruction of one of its captured dependencies and its scheduled deletion, which leads to a crash.2.0.0username-removed-547784username-removed-547784https://staging.gitlab.com/julrich/QtPromise/-/merge_requests/30Feature/improve parameter passing2017-09-25T23:37:16Zusername-removed-547784Feature/improve parameter passingThis MR improves the passing of parameters to avoid unnecessary copying, especially with container objects.
It also allows passing `nullptr` to `Promise::then()` instead of `QtPromise::noop`.
`QtPromise::noop` has therefore been depreca...This MR improves the passing of parameters to avoid unnecessary copying, especially with container objects.
It also allows passing `nullptr` to `Promise::then()` instead of `QtPromise::noop`.
`QtPromise::noop` has therefore been deprecated.
**Breaking Change:**
The signature of `Promise::all()` and `Promise::any()` has been changed. Therefore, this is formally a breaking change. However, unless you explicitly rely on the exact signature of those methods, the change will not be breaking for you since the change is only from call-by-value to call-by-reference.2.0.0username-removed-547784username-removed-547784https://staging.gitlab.com/julrich/QtPromise/-/merge_requests/29Feature/sitter context obj2017-09-17T15:42:31Zusername-removed-547784Feature/sitter context objFixes #9Fixes #91.2.0username-removed-547784username-removed-547784https://staging.gitlab.com/julrich/QtPromise/-/merge_requests/28Resolve "Document that NetworkDeferred::ReplyData::qReply can be null"2017-09-02T21:01:55Zusername-removed-547784Resolve "Document that NetworkDeferred::ReplyData::qReply can be null"Closes #10Closes #10https://staging.gitlab.com/julrich/QtPromise/-/merge_requests/23Feature/Test coverage2017-08-28T20:12:57Zusername-removed-547784Feature/Test coverageFixes #7Fixes #71.1.0username-removed-547784username-removed-547784https://staging.gitlab.com/julrich/QtPromise/-/merge_requests/24Feature/Increase test coverage2017-08-28T20:12:57Zusername-removed-547784Feature/Increase test coverage1.1.0username-removed-547784username-removed-547784https://staging.gitlab.com/julrich/QtPromise/-/merge_requests/25Feature/NetworkPromise testUpload2017-08-28T20:12:56Zusername-removed-547784Feature/NetworkPromise testUploadAdds a unit test for uploading with `NetworkPromise`.Adds a unit test for uploading with `NetworkPromise`.1.1.0username-removed-547784username-removed-547784https://staging.gitlab.com/julrich/QtPromise/-/merge_requests/27Feature/future promise2017-08-28T20:06:45Zusername-removed-547784Feature/future promiseCloses #6Closes #61.1.0username-removed-547784username-removed-547784https://staging.gitlab.com/julrich/QtPromise/-/merge_requests/22Feature/archive and publish2017-06-18T21:53:32Zusername-removed-547784Feature/archive and publishusername-removed-547784username-removed-547784https://staging.gitlab.com/julrich/QtPromise/-/merge_requests/21Feature/cached test2017-06-15T23:30:10Zusername-removed-547784Feature/cached testAdds a test of `NetworkPromise` with a cached `QNetworkReply`.Adds a test of `NetworkPromise` with a cached `QNetworkReply`.1.0.0username-removed-547784username-removed-547784https://staging.gitlab.com/julrich/QtPromise/-/merge_requests/20Align notify callback2017-06-14T20:12:04Zusername-removed-547784Align notify callbackFixes #4Fixes #4username-removed-547784username-removed-547784https://staging.gitlab.com/julrich/QtPromise/-/merge_requests/18Documentation2017-06-04T13:51:03Zusername-removed-547784DocumentationAdds API documentation and usage guides.Adds API documentation and usage guides.1.0.0username-removed-547784username-removed-547784https://staging.gitlab.com/julrich/QtPromise/-/merge_requests/17Feature/promise sitter2017-05-13T19:58:56Zusername-removed-547784Feature/promise sitterFixes #3Fixes #31.0.0username-removed-547784username-removed-547784https://staging.gitlab.com/julrich/QtPromise/-/merge_requests/16Fixes signal emission of Promise::createResolved() and createRejected().2017-05-02T22:48:07Zusername-removed-547784Fixes signal emission of Promise::createResolved() and createRejected().The signals were not emitted asynchronously.
This commit fixes this to make the signal emission consistent with other constructors.The signals were not emitted asynchronously.
This commit fixes this to make the signal emission consistent with other constructors.username-removed-547784username-removed-547784https://staging.gitlab.com/julrich/QtPromise/-/merge_requests/15NetworkPromise data methods2017-04-21T21:03:05Zusername-removed-547784NetworkPromise data methodsAdds missing data methods to `NetworkPromise`Adds missing data methods to `NetworkPromise`username-removed-547784username-removed-547784https://staging.gitlab.com/julrich/QtPromise/-/merge_requests/14NetworkDeferred error handling2017-04-13T20:05:11Zusername-removed-547784NetworkDeferred error handlingChanges the way errors are handled in `NetworkDeferred` to prevent segfaults in case the `QNetworkReply` is destroyed.Changes the way errors are handled in `NetworkDeferred` to prevent segfaults in case the `QNetworkReply` is destroyed.username-removed-547784username-removed-547784https://staging.gitlab.com/julrich/QtPromise/-/merge_requests/13Static create*FuncWrapper()2017-04-12T19:53:07Zusername-removed-547784Static create*FuncWrapper()Makes `Promise::createThenFuncWrapper()` and `Promise::createNotifyFuncWrapper()` static to prevent that the `Promise` is used in the created lambdas as the promise might not exist any more when the lambda are called causing crashes.
An...Makes `Promise::createThenFuncWrapper()` and `Promise::createNotifyFuncWrapper()` static to prevent that the `Promise` is used in the created lambdas as the promise might not exist any more when the lambda are called causing crashes.
And it fixes the intendation of `Promise.h`.username-removed-547784username-removed-547784https://staging.gitlab.com/julrich/QtPromise/-/merge_requests/12Extend NetworkDeferred data2017-04-09T20:32:45Zusername-removed-547784Extend NetworkDeferred dataThere are situations where one needs access to more information like the HTTP status code (especially when the request failed, i.e. the promise is rejected).
Therefore, this MR adds the `QNetworkReply` to the `RequestData` struct and th...There are situations where one needs access to more information like the HTTP status code (especially when the request failed, i.e. the promise is rejected).
Therefore, this MR adds the `QNetworkReply` to the `RequestData` struct and the `RequestData` to the `Error` struct.
Additionally, `NetworkDeferred` now detects when the `QNetworkReply` is destroyed and rejects itself.username-removed-547784username-removed-547784https://staging.gitlab.com/julrich/QtPromise/-/merge_requests/11Adds std::initializer_list overloads to Promise::any() & Promise::all()2017-04-06T22:27:13Zusername-removed-547784Adds std::initializer_list overloads to Promise::any() & Promise::all()Using initializer lists (i.e. `{myPromise, anotherPromise}`) does not work with template type deduction. Hence, one has to create explicit overloads for `std::initializer_list<T>` to avoid the need to explicitly state the template type.
...Using initializer lists (i.e. `{myPromise, anotherPromise}`) does not work with template type deduction. Hence, one has to create explicit overloads for `std::initializer_list<T>` to avoid the need to explicitly state the template type.
This MR adds those overloads for `Promise::all()` and `Promise::any()`.username-removed-547784username-removed-547784https://staging.gitlab.com/julrich/QtPromise/-/merge_requests/10Combine promises (all() and any())2017-04-02T21:58:08Zusername-removed-547784Combine promises (all() and any())Implements `Promise::all()` and `Promise::any()` to combine multiple promises into one promise.Implements `Promise::all()` and `Promise::any()` to combine multiple promises into one promise.username-removed-547784username-removed-547784