Index: base/bind.h |
diff --git a/base/bind.h b/base/bind.h |
index aa2cc6b2cf8bd915cae5f0240f6c17920e8e9ea9..22a3b4b83edacd35bda0bd3294c57e0c08512ae2 100644 |
--- a/base/bind.h |
+++ b/base/bind.h |
@@ -44,11 +44,12 @@ |
namespace base { |
template <typename Functor> |
-internal::BindStateHolder< |
- internal::BindState< |
+base::Callback< |
+ typename internal::BindState< |
typename internal::FunctorTraits<Functor>::RunnableType, |
typename internal::FunctorTraits<Functor>::RunType, |
- void()> > |
+ void()> |
+ ::UnboundRunType> |
Bind(Functor functor) { |
// Typedefs for how to store and run the functor. |
typedef typename internal::FunctorTraits<Functor>::RunnableType RunnableType; |
@@ -60,18 +61,20 @@ Bind(Functor functor) { |
typedef internal::FunctionTraits<typename RunnableType::RunType> |
BoundFunctorTraits; |
+ typedef internal::BindState<RunnableType, RunType, void()> BindState; |
- return internal::MakeBindStateHolder( |
- new internal::BindState<RunnableType, RunType, void()>( |
- internal::MakeRunnable(functor))); |
+ |
+ return Callback<typename BindState::UnboundRunType>( |
+ new BindState(internal::MakeRunnable(functor))); |
} |
template <typename Functor, typename P1> |
-internal::BindStateHolder< |
- internal::BindState< |
+base::Callback< |
+ typename internal::BindState< |
typename internal::FunctorTraits<Functor>::RunnableType, |
typename internal::FunctorTraits<Functor>::RunType, |
- void(typename internal::CallbackParamTraits<P1>::StorageType)> > |
+ void(typename internal::CallbackParamTraits<P1>::StorageType)> |
+ ::UnboundRunType> |
Bind(Functor functor, const P1& p1) { |
// Typedefs for how to store and run the functor. |
typedef typename internal::FunctorTraits<Functor>::RunnableType RunnableType; |
@@ -103,20 +106,22 @@ Bind(Functor functor, const P1& p1) { |
COMPILE_ASSERT(!internal::HasIsMethodTag<RunnableType>::value || |
!is_array<P1>::value, |
first_bound_argument_to_method_cannot_be_array); |
+ typedef internal::BindState<RunnableType, RunType, |
+ void(typename internal::CallbackParamTraits<P1>::StorageType)> BindState; |
+ |
- return internal::MakeBindStateHolder( |
- new internal::BindState<RunnableType, RunType, |
- void(typename internal::CallbackParamTraits<P1>::StorageType)>( |
- internal::MakeRunnable(functor), p1)); |
+ return Callback<typename BindState::UnboundRunType>( |
+ new BindState(internal::MakeRunnable(functor), p1)); |
} |
template <typename Functor, typename P1, typename P2> |
-internal::BindStateHolder< |
- internal::BindState< |
+base::Callback< |
+ typename internal::BindState< |
typename internal::FunctorTraits<Functor>::RunnableType, |
typename internal::FunctorTraits<Functor>::RunType, |
void(typename internal::CallbackParamTraits<P1>::StorageType, |
- typename internal::CallbackParamTraits<P2>::StorageType)> > |
+ typename internal::CallbackParamTraits<P2>::StorageType)> |
+ ::UnboundRunType> |
Bind(Functor functor, const P1& p1, const P2& p2) { |
// Typedefs for how to store and run the functor. |
typedef typename internal::FunctorTraits<Functor>::RunnableType RunnableType; |
@@ -151,22 +156,24 @@ Bind(Functor functor, const P1& p1, const P2& p2) { |
first_bound_argument_to_method_cannot_be_array); |
COMPILE_ASSERT(!internal::NeedsScopedRefptrButGetsRawPtr<P2>::value, |
p2_is_refcounted_type_and_needs_scoped_refptr); |
+ typedef internal::BindState<RunnableType, RunType, |
+ void(typename internal::CallbackParamTraits<P1>::StorageType, |
+ typename internal::CallbackParamTraits<P2>::StorageType)> BindState; |
- return internal::MakeBindStateHolder( |
- new internal::BindState<RunnableType, RunType, |
- void(typename internal::CallbackParamTraits<P1>::StorageType, |
- typename internal::CallbackParamTraits<P2>::StorageType)>( |
- internal::MakeRunnable(functor), p1, p2)); |
+ |
+ return Callback<typename BindState::UnboundRunType>( |
+ new BindState(internal::MakeRunnable(functor), p1, p2)); |
} |
template <typename Functor, typename P1, typename P2, typename P3> |
-internal::BindStateHolder< |
- internal::BindState< |
+base::Callback< |
+ typename internal::BindState< |
typename internal::FunctorTraits<Functor>::RunnableType, |
typename internal::FunctorTraits<Functor>::RunType, |
void(typename internal::CallbackParamTraits<P1>::StorageType, |
typename internal::CallbackParamTraits<P2>::StorageType, |
- typename internal::CallbackParamTraits<P3>::StorageType)> > |
+ typename internal::CallbackParamTraits<P3>::StorageType)> |
+ ::UnboundRunType> |
Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3) { |
// Typedefs for how to store and run the functor. |
typedef typename internal::FunctorTraits<Functor>::RunnableType RunnableType; |
@@ -204,24 +211,26 @@ Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3) { |
p2_is_refcounted_type_and_needs_scoped_refptr); |
COMPILE_ASSERT(!internal::NeedsScopedRefptrButGetsRawPtr<P3>::value, |
p3_is_refcounted_type_and_needs_scoped_refptr); |
+ typedef internal::BindState<RunnableType, RunType, |
+ void(typename internal::CallbackParamTraits<P1>::StorageType, |
+ typename internal::CallbackParamTraits<P2>::StorageType, |
+ typename internal::CallbackParamTraits<P3>::StorageType)> BindState; |
+ |
- return internal::MakeBindStateHolder( |
- new internal::BindState<RunnableType, RunType, |
- void(typename internal::CallbackParamTraits<P1>::StorageType, |
- typename internal::CallbackParamTraits<P2>::StorageType, |
- typename internal::CallbackParamTraits<P3>::StorageType)>( |
- internal::MakeRunnable(functor), p1, p2, p3)); |
+ return Callback<typename BindState::UnboundRunType>( |
+ new BindState(internal::MakeRunnable(functor), p1, p2, p3)); |
} |
template <typename Functor, typename P1, typename P2, typename P3, typename P4> |
-internal::BindStateHolder< |
- internal::BindState< |
+base::Callback< |
+ typename internal::BindState< |
typename internal::FunctorTraits<Functor>::RunnableType, |
typename internal::FunctorTraits<Functor>::RunType, |
void(typename internal::CallbackParamTraits<P1>::StorageType, |
typename internal::CallbackParamTraits<P2>::StorageType, |
typename internal::CallbackParamTraits<P3>::StorageType, |
- typename internal::CallbackParamTraits<P4>::StorageType)> > |
+ typename internal::CallbackParamTraits<P4>::StorageType)> |
+ ::UnboundRunType> |
Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4) { |
// Typedefs for how to store and run the functor. |
typedef typename internal::FunctorTraits<Functor>::RunnableType RunnableType; |
@@ -262,27 +271,29 @@ Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4) { |
p3_is_refcounted_type_and_needs_scoped_refptr); |
COMPILE_ASSERT(!internal::NeedsScopedRefptrButGetsRawPtr<P4>::value, |
p4_is_refcounted_type_and_needs_scoped_refptr); |
+ typedef internal::BindState<RunnableType, RunType, |
+ void(typename internal::CallbackParamTraits<P1>::StorageType, |
+ typename internal::CallbackParamTraits<P2>::StorageType, |
+ typename internal::CallbackParamTraits<P3>::StorageType, |
+ typename internal::CallbackParamTraits<P4>::StorageType)> BindState; |
- return internal::MakeBindStateHolder( |
- new internal::BindState<RunnableType, RunType, |
- void(typename internal::CallbackParamTraits<P1>::StorageType, |
- typename internal::CallbackParamTraits<P2>::StorageType, |
- typename internal::CallbackParamTraits<P3>::StorageType, |
- typename internal::CallbackParamTraits<P4>::StorageType)>( |
- internal::MakeRunnable(functor), p1, p2, p3, p4)); |
+ |
+ return Callback<typename BindState::UnboundRunType>( |
+ new BindState(internal::MakeRunnable(functor), p1, p2, p3, p4)); |
} |
template <typename Functor, typename P1, typename P2, typename P3, typename P4, |
typename P5> |
-internal::BindStateHolder< |
- internal::BindState< |
+base::Callback< |
+ typename internal::BindState< |
typename internal::FunctorTraits<Functor>::RunnableType, |
typename internal::FunctorTraits<Functor>::RunType, |
void(typename internal::CallbackParamTraits<P1>::StorageType, |
typename internal::CallbackParamTraits<P2>::StorageType, |
typename internal::CallbackParamTraits<P3>::StorageType, |
typename internal::CallbackParamTraits<P4>::StorageType, |
- typename internal::CallbackParamTraits<P5>::StorageType)> > |
+ typename internal::CallbackParamTraits<P5>::StorageType)> |
+ ::UnboundRunType> |
Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4, |
const P5& p5) { |
// Typedefs for how to store and run the functor. |
@@ -327,21 +338,22 @@ Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4, |
p4_is_refcounted_type_and_needs_scoped_refptr); |
COMPILE_ASSERT(!internal::NeedsScopedRefptrButGetsRawPtr<P5>::value, |
p5_is_refcounted_type_and_needs_scoped_refptr); |
+ typedef internal::BindState<RunnableType, RunType, |
+ void(typename internal::CallbackParamTraits<P1>::StorageType, |
+ typename internal::CallbackParamTraits<P2>::StorageType, |
+ typename internal::CallbackParamTraits<P3>::StorageType, |
+ typename internal::CallbackParamTraits<P4>::StorageType, |
+ typename internal::CallbackParamTraits<P5>::StorageType)> BindState; |
+ |
- return internal::MakeBindStateHolder( |
- new internal::BindState<RunnableType, RunType, |
- void(typename internal::CallbackParamTraits<P1>::StorageType, |
- typename internal::CallbackParamTraits<P2>::StorageType, |
- typename internal::CallbackParamTraits<P3>::StorageType, |
- typename internal::CallbackParamTraits<P4>::StorageType, |
- typename internal::CallbackParamTraits<P5>::StorageType)>( |
- internal::MakeRunnable(functor), p1, p2, p3, p4, p5)); |
+ return Callback<typename BindState::UnboundRunType>( |
+ new BindState(internal::MakeRunnable(functor), p1, p2, p3, p4, p5)); |
} |
template <typename Functor, typename P1, typename P2, typename P3, typename P4, |
typename P5, typename P6> |
-internal::BindStateHolder< |
- internal::BindState< |
+base::Callback< |
+ typename internal::BindState< |
typename internal::FunctorTraits<Functor>::RunnableType, |
typename internal::FunctorTraits<Functor>::RunType, |
void(typename internal::CallbackParamTraits<P1>::StorageType, |
@@ -349,7 +361,8 @@ internal::BindStateHolder< |
typename internal::CallbackParamTraits<P3>::StorageType, |
typename internal::CallbackParamTraits<P4>::StorageType, |
typename internal::CallbackParamTraits<P5>::StorageType, |
- typename internal::CallbackParamTraits<P6>::StorageType)> > |
+ typename internal::CallbackParamTraits<P6>::StorageType)> |
+ ::UnboundRunType> |
Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4, |
const P5& p5, const P6& p6) { |
// Typedefs for how to store and run the functor. |
@@ -397,22 +410,23 @@ Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4, |
p5_is_refcounted_type_and_needs_scoped_refptr); |
COMPILE_ASSERT(!internal::NeedsScopedRefptrButGetsRawPtr<P6>::value, |
p6_is_refcounted_type_and_needs_scoped_refptr); |
+ typedef internal::BindState<RunnableType, RunType, |
+ void(typename internal::CallbackParamTraits<P1>::StorageType, |
+ typename internal::CallbackParamTraits<P2>::StorageType, |
+ typename internal::CallbackParamTraits<P3>::StorageType, |
+ typename internal::CallbackParamTraits<P4>::StorageType, |
+ typename internal::CallbackParamTraits<P5>::StorageType, |
+ typename internal::CallbackParamTraits<P6>::StorageType)> BindState; |
- return internal::MakeBindStateHolder( |
- new internal::BindState<RunnableType, RunType, |
- void(typename internal::CallbackParamTraits<P1>::StorageType, |
- typename internal::CallbackParamTraits<P2>::StorageType, |
- typename internal::CallbackParamTraits<P3>::StorageType, |
- typename internal::CallbackParamTraits<P4>::StorageType, |
- typename internal::CallbackParamTraits<P5>::StorageType, |
- typename internal::CallbackParamTraits<P6>::StorageType)>( |
- internal::MakeRunnable(functor), p1, p2, p3, p4, p5, p6)); |
+ |
+ return Callback<typename BindState::UnboundRunType>( |
+ new BindState(internal::MakeRunnable(functor), p1, p2, p3, p4, p5, p6)); |
} |
template <typename Functor, typename P1, typename P2, typename P3, typename P4, |
typename P5, typename P6, typename P7> |
-internal::BindStateHolder< |
- internal::BindState< |
+base::Callback< |
+ typename internal::BindState< |
typename internal::FunctorTraits<Functor>::RunnableType, |
typename internal::FunctorTraits<Functor>::RunType, |
void(typename internal::CallbackParamTraits<P1>::StorageType, |
@@ -421,7 +435,8 @@ internal::BindStateHolder< |
typename internal::CallbackParamTraits<P4>::StorageType, |
typename internal::CallbackParamTraits<P5>::StorageType, |
typename internal::CallbackParamTraits<P6>::StorageType, |
- typename internal::CallbackParamTraits<P7>::StorageType)> > |
+ typename internal::CallbackParamTraits<P7>::StorageType)> |
+ ::UnboundRunType> |
Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4, |
const P5& p5, const P6& p6, const P7& p7) { |
// Typedefs for how to store and run the functor. |
@@ -472,17 +487,19 @@ Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4, |
p6_is_refcounted_type_and_needs_scoped_refptr); |
COMPILE_ASSERT(!internal::NeedsScopedRefptrButGetsRawPtr<P7>::value, |
p7_is_refcounted_type_and_needs_scoped_refptr); |
- |
- return internal::MakeBindStateHolder( |
- new internal::BindState<RunnableType, RunType, |
- void(typename internal::CallbackParamTraits<P1>::StorageType, |
- typename internal::CallbackParamTraits<P2>::StorageType, |
- typename internal::CallbackParamTraits<P3>::StorageType, |
- typename internal::CallbackParamTraits<P4>::StorageType, |
- typename internal::CallbackParamTraits<P5>::StorageType, |
- typename internal::CallbackParamTraits<P6>::StorageType, |
- typename internal::CallbackParamTraits<P7>::StorageType)>( |
- internal::MakeRunnable(functor), p1, p2, p3, p4, p5, p6, p7)); |
+ typedef internal::BindState<RunnableType, RunType, |
+ void(typename internal::CallbackParamTraits<P1>::StorageType, |
+ typename internal::CallbackParamTraits<P2>::StorageType, |
+ typename internal::CallbackParamTraits<P3>::StorageType, |
+ typename internal::CallbackParamTraits<P4>::StorageType, |
+ typename internal::CallbackParamTraits<P5>::StorageType, |
+ typename internal::CallbackParamTraits<P6>::StorageType, |
+ typename internal::CallbackParamTraits<P7>::StorageType)> BindState; |
+ |
+ |
+ return Callback<typename BindState::UnboundRunType>( |
+ new BindState(internal::MakeRunnable(functor), p1, p2, p3, p4, p5, p6, |
+ p7)); |
} |
} // namespace base |