359 Commits

Author SHA1 Message Date
Denis Blank
a9375c7f22 Implement the exception invokers which fully implements recover, rethrow and cancel now 2018-11-26 04:12:17 +01:00
Denis Blank
ca1c0bf1da Split the logic for exception forwarding 2018-11-26 03:27:35 +01:00
Denis Blank
c5663bf1ad Add the unit tests for the failure handlers recovering and rethrowing 2018-11-26 03:02:49 +01:00
Denis Blank
afe1a3298e Make the current unit tests pass 2018-11-26 02:35:27 +01:00
Denis Blank
9955f9e469 Add the invoker for result<...> 2018-11-26 02:19:16 +01:00
Denis Blank
ba9ff9fce0 Initial work on routing the arguments correctly when using result<...> 2018-11-26 00:41:15 +01:00
Denis Blank
7767ce6fbb Only provide value_t from result 2018-11-25 21:31:08 +01:00
Denis Blank
41da6ba293 Remove the is_result trait 2018-11-25 20:00:41 +01:00
Denis Blank
cd367b3d43 Make result<> return void when calling get_value() 2018-11-25 19:56:03 +01:00
Denis Blank
5354d3512e Fix the MSVC/Clang build even more 2018-11-25 18:01:15 +01:00
Denis Blank
2a80649084 Make exception and empty results returning a void hint 2018-11-25 17:14:23 +01:00
Denis Blank
782e1c6447 Fix the MSVC build 2018-11-25 17:08:01 +01:00
Denis Blank
f4268f60f9 initial work on the multipathing unit tests 2018-11-25 03:18:35 +01:00
Denis Blank
07c8ed0cf9 Add invoker for the result class and specialized ones 2018-11-25 02:54:35 +01:00
Denis Blank
ffa3b9ee1b Rename cti::expected -> cti::result 2018-11-25 02:23:08 +01:00
Denis Blank
93b1d27b07 Fix the build for the expected class 2018-11-25 02:13:01 +01:00
Denis Blank
867ab38b8e Rework the expected_trait
* Add tests for the new expected public interface
2018-11-25 00:29:00 +01:00
Denis Blank
c76fe9e973 Make the expected class part of the public interface
* Required for exception rethrowing and recovering
2018-11-24 22:57:18 +01:00
Denis Blank
3a70356f16 Move some methods out of the attorney
* Code cleanup
2018-11-24 15:02:23 +01:00
Denis Blank
6969a9e392 Expose finish() method in continuable_base which makes it possible
to materialize the continuable_base when using it as an expression template.
2018-11-24 14:26:51 +01:00
Denis Blank
0657445466 Re-enable the deprecation warnings
* Ref 815c3d71
2018-11-22 00:50:41 +01:00
Denis Blank
815c3d71b9 Make the old error and dispatch tag not throw deprecation warnings for now 2018-11-22 00:48:02 +01:00
Denis Blank
057fb37123 Introduce the continuable primitive header which supplies tags
* Adapts the new naming scheme from the "Unified Futures" proposal
* Provides new tags for the future inplace resolution
2018-11-19 23:59:01 +01:00
Denis Blank
8e7af3a320 Add traits::unrefcv_t for later usage 2018-11-19 19:37:53 +01:00
Denis Blank
818b7a7314 Workaround for a regression introduced ~MSVC 15.8.1 2018-11-19 19:27:29 +01:00
Denis Blank
646707e5dc Move from std::decay to std::decay_t
* Makes the transition to traits::unref easier later
2018-11-19 19:26:18 +01:00
Denis Blank
cc83fd5251 Rearrange the internal headers 2018-11-18 18:46:15 +01:00
Denis Blank
c1b8aa8694 Attempt to work around the failing MSVC CI build 2018-11-18 18:11:50 +01:00
Denis Blank
fae030afa3 Fix a compilation error which is caused by regression in one of the MSVC 15.1 updates 2018-11-18 17:46:25 +01:00
Denis Blank
9247e7b85f Silence a warning when using CONTINUABLE_WITH_UNHANDLED_EXCEPTIONS
* Ref e59e6ae8b9
2018-03-19 09:07:34 +01:00
Denis Blank
e59e6ae8b9 Make it easier to inspect unhandled asynchronous exceptions in debuggers 2018-03-17 14:23:19 +01:00
Denis Blank
7dbf22a2d2 Make it possible to remap the result from promisified expressions 2018-03-17 13:24:57 +01:00
Denis Blank
be6571091b Implement continuables as return types for coroutines
* Closes #4
2018-03-14 10:29:45 +01:00
Denis Blank
358e13e06e Remove unused size traits 2018-03-14 10:29:45 +01:00
Denis Blank
3a5cea7779 std::size_t is part of cstddef not cstdint 2018-03-14 10:29:45 +01:00
Denis Blank
139f7d39de Remove unused static_if 2018-03-14 10:29:45 +01:00
Denis Blank
65e41a2cbd Remove unused identity utilities 2018-03-14 10:29:45 +01:00
Denis Blank
83f736a93f Move the arguments out of a ready continuable with multiple arguments 2018-03-14 10:29:44 +01:00
Denis Blank
f091cbb079 Use a std::apply style unpack
* Some cleanup
2018-03-14 10:29:44 +01:00
Denis Blank
41c7cb008a Add an alias for type erased work objects 2018-03-14 10:29:44 +01:00
Denis Blank
084937e192 Use std::void_t when available 2018-03-12 16:34:55 +01:00
Denis Blank
6e6297194e Some minor improvements 2018-03-12 08:49:21 +01:00
Denis Blank
9ab9b5e7fb Rename composition to connection 2018-03-12 08:35:19 +01:00
Denis Blank
093ecae1c0 composition > connection 2018-03-12 08:30:18 +01:00
Denis Blank
cd6f7445f0 Calculate the connection hint directly from the intermediate result 2018-03-12 08:25:44 +01:00
Denis Blank
49a097660b Move the composition strategies into their own header 2018-03-12 08:05:06 +01:00
Denis Blank
3df06820ef Make the seq dependency only dependent from the aggregate header 2018-03-12 08:02:43 +01:00
Denis Blank
a3e995c0ce Improve order dependence for the coroutine detection 2018-03-12 07:24:04 +01:00
Denis Blank
c72d1afa8b Fix a MSVC test failure 2018-03-12 06:19:34 +01:00
Denis Blank
4c39532d7c In source documentation improvements 2018-03-12 05:42:27 +01:00
Denis Blank
936a09dac2 Finish the await tutorial 2018-03-11 08:46:46 +01:00
Denis Blank
4665dc931b Changing promisify::from_asio to promisify::from 2018-03-11 08:23:58 +01:00
Denis Blank
d7c305ad33 More work on the documentation 2018-03-11 08:23:42 +01:00
Denis Blank
60f40415c3 Finish the connection tutorial 2018-03-11 06:40:11 +01:00
Denis Blank
71e219cbe0 Started the connection tutorial 2018-03-11 04:32:12 +01:00
Denis Blank
b031417aa8 Compositions -> Connections 2018-03-10 15:37:05 +01:00
Denis Blank
f6ee04a0c0 Add a configuration documentation section 2018-03-10 14:28:46 +01:00
Denis Blank
8d6a9b6b24 Started the new tutorial section 2018-03-10 10:30:03 +01:00
Denis Blank
a9432b2c9a Some improvements to the documentation 2018-03-09 15:45:28 +01:00
Denis Blank
a95246d45c Attempt to fix the GCC and MSVC build 2018-03-09 11:49:00 +01:00
Denis Blank
cb4497ef1d Fix the remaining doxygen warnings 2018-03-09 11:19:36 +01:00
Denis Blank
17b0f7544d Some improvements to the documentation 2018-03-09 11:11:16 +01:00
Denis Blank
bc9f77f6cb Document the continuable_base co_await operator 2018-03-09 10:34:07 +01:00
Denis Blank
22ce1840b9 Reserve the container size across remappings 2018-03-09 10:10:56 +01:00
Denis Blank
de40af0927 Add cti::populate and make use of it in tests 2018-03-09 09:45:00 +01:00
Denis Blank
86c3815ae0 Make continuable_base non copyable by default
* Actually there is no reason that the call hierarchy is copyable
  when looking at the fact that two types just cause distraction
  and bad usage.
2018-03-09 08:51:33 +01:00
Denis Blank
1ce251483c Add more remaining nested unit tests to the any strategy 2018-03-09 08:13:50 +01:00
Denis Blank
c4cb102795 Fix a bug in the pack traversal where the container content wasn't perfectly forwarded 2018-03-09 08:13:20 +01:00
Denis Blank
b50c2bf8a8 Fix non default constructible values in compositions
* Add a test case for the non default constructible case
2018-03-09 05:25:36 +01:00
Denis Blank
d59c0730b8 Make it possible to use non default constructible values in compositions 2018-03-09 04:50:06 +01:00
Denis Blank
cc135da250 Fix additional debug code in async pack traversal 2018-03-09 04:34:58 +01:00
Denis Blank
1a947d5c59 Fix the flat variant implementation
* Add unit tests
2018-03-09 04:34:31 +01:00
Denis Blank
916ea3c04d Use the flat_variant for the expected implementation 2018-03-08 19:29:31 +01:00
Denis Blank
c66e9a8ee1 optional_variant -> flat_variant 2018-03-08 17:30:33 +01:00
Denis Blank
e78291669c Establish the basic functionality of the optional_variant 2018-03-08 17:26:33 +01:00
Denis Blank
22896a69af Attempt to fix the basic instantiation of variant 2018-03-08 15:40:38 +01:00
Denis Blank
42c04f0fcb More work on implementing the optional_variant type 2018-03-08 14:24:09 +01:00
Denis Blank
224e8c835f Some more work on the optional variant type 2018-03-08 14:06:30 +01:00
Denis Blank
ca03c52d40 more 2018-03-07 17:14:41 +01:00
Denis Blank
715cece74c Allow non copyable completion handlers in the asio example 2018-03-06 22:06:07 +01:00
Denis Blank
98aefb59d8 First attempt on making all promises non-copyable
* Fix CONTINUABLE_WITH_UNHANDLED_ERRORS when using the promise as
  real callback.
2018-03-06 21:50:25 +01:00
Denis Blank
73c0b17962 Mark promise helpers as noexcept 2018-03-06 21:40:37 +01:00
Denis Blank
12c23f15f8 Fix a defect unit test 2018-03-06 21:36:27 +01:00
Denis Blank
1aae8c3083 Async traversal cleanup 2018-03-06 08:49:00 +01:00
Denis Blank
201a2fc17c Some cleanups in the any composition 2018-03-06 08:44:12 +01:00
Denis Blank
8f69198651 More cleanups in util and traits 2018-03-06 08:37:07 +01:00
Denis Blank
acc15b46ab Traits and util cleanup 2018-03-06 03:53:18 +01:00
Denis Blank
0dbcccdc9e Add documentation to when_any 2018-03-04 08:44:38 +01:00
Denis Blank
9ecbb00f5a Implement the nested when_any connection 2018-03-04 08:14:11 +01:00
Denis Blank
cdbc332287 Implement the new result deduction for when_any
* The logic requires now that all continuables yield the same
  types and amount of result objects.
2018-03-02 19:18:53 +01:00
Denis Blank
9891543b1f Enable and document the new when_all 2018-03-02 04:49:04 +01:00
Denis Blank
dd1b605d95 Revert 5dfe388f7f8156
* It turns out that this isn't needed anymore and just affects
  the compile time by now
* Additionally GCC can't handle this properly
2018-03-02 04:02:45 +01:00
Denis Blank
178f590aa9 Address a GCC parsing failure (compiler bug)
* See https://travis-ci.org/Naios/continuable/jobs/348056527#L723
2018-03-02 03:14:05 +01:00
Denis Blank
83752502dc Fix the simplification 2018-03-02 02:54:09 +01:00
Denis Blank
92ba25cd23 Started on simplifying the all and seq composition heavily 2018-03-02 01:25:59 +01:00
Denis Blank
a9da11149b Attempt to fix the clang build 2018-03-01 05:16:12 +01:00
Denis Blank
7602dfd50d Basic implementation of the all composition 2018-03-01 03:21:31 +01:00
Denis Blank
1853ec8b42 Start to work on rewriting the all composition 2018-02-28 18:12:12 +01:00
Denis Blank
375e376db8 Attempt to fix the clang build 2018-02-28 17:37:02 +01:00
Denis Blank
4a5136427b Avoid using SFINAE inside the materializer 2018-02-28 17:28:41 +01:00