A proxy object allowing type-checked sequencing of actions and responsible for starting the initial action.
More...
|
| | SequenceProxy (Sequencer< Future > *sequencer) |
| | Constructs a sequencer proxy managing the given sequencer. More...
|
| |
| | SequenceProxy (SequenceProxy &&proxy)=default |
| | Move-constructs from proxy. More...
|
| |
| template<typename F > |
| auto | Then (F &&f) -> SequenceProxy< UnwrapFutureType_t< decltype(f(std::declval< Ret >()))>, Future, DestructionTag > |
| | Adds the functor f to the chain of actions. More...
|
| |
| template<typename F > |
| auto | Then (F &&f) -> std::enable_if_t< std::is_same< void, decltype(f(std::declval< Ret >()))>::value > |
| | Adds the funtor f to the chain of actions and closes the chain. More...
|
| |
| template<typename F > |
| auto | Then (F &&f) -> std::enable_if_t< std::is_same< void, Ret >::value &&std::is_same< void, decltype(f())>::value > |
| |
| template<typename F > |
| auto | operator>> (F &&f) -> decltype(this->Then(std::forward< F >(f))) |
| |
| template<typename F > |
SequenceProxy< Ret, Future,
std::result_of_t< F()> > | DestructionValue (F &&f) |
| |
| template<typename F > |
| void | MultipleResults (F &&f) |
| |
| template<typename F , typename Finish > |
| void | MultipleResults (F &&f, Finish &&finish) |
| |
| template<typename F , typename Finish , typename Start > |
| void | MultipleResults (F &&f, Finish &&finish, Start &&start) |
| |
| | operator QFuture< Ret > () |
| |
template<typename Ret, typename Future, typename DestructionTag>
class LeechCraft::Util::detail::SequenceProxy< Ret, Future, DestructionTag >
A proxy object allowing type-checked sequencing of actions and responsible for starting the initial action.
SequenceProxy manages a Sequencer object, which itself is directly responsible for walking the chain of sequenced actions.
Internally, objects of this class are reference-counted. As soon as the last instance is destroyed, the initial action is started.
- Template Parameters
-
| Ret | The type T that QFuture<T> returned by the last chained executor is specialized with. |
| E0 | The type of the first executor. |
| A0 | The types of the arguments to the executor E0. |
Definition at line 491 of file futures.h.
template<typename Ret , typename Future , typename DestructionTag >
template<typename F >
Adds the functor f to the chain of actions.
The functor f should return QFuture<T0> when called with a value of type Ret. That is, the expression f (std::declval<Ret> ()) should be well-formed, and, moreover, its return type should be QFuture<T0> for some T0.
- Parameters
-
| [in] | f | The functor to chain. |
- Returns
- An object of type
SequencerProxy<T0, E0, A0> ready for chaining new functions.
- Template Parameters
-
| F | The type of the functor to chain. |
Definition at line 553 of file futures.h.
Referenced by LeechCraft::Util::detail::SequenceProxy< Ret, Future, DestructionTag >::operator QFuture< Ret >(), and LeechCraft::Util::detail::SequenceProxy< Ret, Future, DestructionTag >::operator>>().
template<typename Ret , typename Future , typename DestructionTag >
template<typename F >
Adds the funtor f to the chain of actions and closes the chain.
The function f should return void when called with a value of type Ret.
No more functors may be chained after adding a void-returning functor.
- Parameters
-
| [in] | f | The functor to chain. |
- Template Parameters
-
| F | The type of the functor to chain. |
Definition at line 575 of file futures.h.