diff options
Diffstat (limited to 'base')
-rw-r--r-- | base/task.h | 15 | ||||
-rw-r--r-- | base/tuple.h | 7 |
2 files changed, 22 insertions, 0 deletions
diff --git a/base/task.h b/base/task.h index fc986b2..2deee56 100644 --- a/base/task.h +++ b/base/task.h @@ -423,6 +423,21 @@ inline CancelableTask* NewRunnableMethod(T* object, Method method, e, f, g)); } +template <class T, class Method, class A, class B, class C, class D, class E, + class F, class G, class H> +inline CancelableTask* NewRunnableMethod(T* object, Method method, + const A& a, const B& b, + const C& c, const D& d, const E& e, + const F& f, const G& g, const H& h) { + return new RunnableMethod<T, + Method, + Tuple8<A, B, C, D, E, F, G, H> >(object, + method, + MakeTuple(a, b, c, + d, e, f, + g, h)); +} + // RunnableFunction and NewRunnableFunction implementation --------------------- template <class Function, class Params> diff --git a/base/tuple.h b/base/tuple.h index 13d8722..65d0908a 100644 --- a/base/tuple.h +++ b/base/tuple.h @@ -590,6 +590,13 @@ inline void DispatchToMethod(ObjT* obj, Method method, (obj->*method)(arg.a, arg.b, arg.c, arg.d, arg.e, arg.f, arg.g); } +template<class ObjT, class Method, class A, class B, class C, class D, class E, + class F, class G, class H> +inline void DispatchToMethod(ObjT* obj, Method method, + const Tuple8<A, B, C, D, E, F, G, H>& arg) { + (obj->*method)(arg.a, arg.b, arg.c, arg.d, arg.e, arg.f, arg.g, arg.h); +} + // Static Dispatchers with no out params. template <class Function> |