summaryrefslogtreecommitdiffstats
path: root/base/task.h
diff options
context:
space:
mode:
Diffstat (limited to 'base/task.h')
-rw-r--r--base/task.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/base/task.h b/base/task.h
index 8db4560..9d4e6e2 100644
--- a/base/task.h
+++ b/base/task.h
@@ -625,5 +625,19 @@ typename Callback5<Arg1, Arg2, Arg3, Arg4, Arg5>::Type* NewCallback(
Tuple5<Arg1, Arg2, Arg3, Arg4, Arg5> >(object, method);
}
+// An UnboundMethod is a wrapper for a method where the actual object is
+// provided at Run dispatch time.
+template <class T, class Method, class Params>
+class UnboundMethod {
+ public:
+ UnboundMethod(Method m, Params p) : m_(m), p_(p) {}
+ void Run(T* obj) const {
+ DispatchToMethod(obj, m_, p_);
+ }
+ private:
+ Method m_;
+ Params p_;
+};
+
#endif // BASE_TASK_H__