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