7 #include <core/Future.h>
13 template <
class ExecutorAgent>
class Executor;
19 template <
typename ExecutorAgent,
typename ResultType>
61 template <
typename ExecutorAgent,
typename ResultType>
70 ExFuture( ExFuture&& ob )
71 : Future<ResultType&>( std::move( ob ) ),
72 agent( std::move( ob.agent ) )
75 ExFuture( Executor<ExecutorAgent> aEx ) : agent( aEx ) {}
76 ExFuture( Executor<ExecutorAgent> aEx, ResultType& val )
77 : Future<ResultType&>( val ), agent( aEx )
81 ExFuture& operator=(
const ExFuture& f )
83 Future<ResultType&>::operator=( f );
87 ExFuture& operator=( ExFuture&& f )
89 Future<ResultType&>::operator=( std::move( f ) );
90 agent = std::move( f.agent );
93 Executor<ExecutorAgent>
97 template <
typename ExecutorAgent>
98 class ExFuture<ExecutorAgent, void> :
public Future<void>
101 ExFuture() =
default;
102 ExFuture(
const ExFuture& ob )
106 ExFuture( ExFuture&& ob )
107 : Future<void>( std::move( ob ) ),
111 ExFuture( Executor<ExecutorAgent> aEx ) :
agent( aEx ) {}
112 ExFuture( Executor<ExecutorAgent> aEx,
int dummy )
113 : Future<void>( dummy ),
agent( aEx )
116 ExFuture& operator=(
const ExFuture& f )
118 Future<void>::operator=( f );
122 ExFuture& operator=( ExFuture&& f )
124 Future<void>::operator=( std::move( f ) );
125 agent = std::move( f.agent );
129 Executor<ExecutorAgent>
Represents a value that maybe is not present at the current moment.
Definition: Future.h:750
Extension of mel::core::Future to apply to executors.
Definition: ExFuture.h:21
Executor< ExecutorAgent > agent
execution agent associated with this instance
Definition: ExFuture.h:54
Definition: Executor.h:26
Definition: Callback_Impl.h:11