| Index: base/callback_forward.h
|
| diff --git a/base/callback_forward.h b/base/callback_forward.h
|
| index 13eed0eb0d2fd7e61f092698456fa92e04a46b3b..3703515a42396a43014ec476e784f6973c564aa6 100644
|
| --- a/base/callback_forward.h
|
| +++ b/base/callback_forward.h
|
| @@ -45,4 +45,45 @@ using RepeatingClosure = RepeatingCallback<void()>;
|
|
|
| } // namespace base
|
|
|
| +namespace base {
|
| +namespace dupe {
|
| +namespace internal {
|
| +
|
| +// CopyMode is used to control the copyablity of a Callback.
|
| +// MoveOnly indicates the Callback is not copyable but movable, and Copyable
|
| +// indicates it is copyable and movable.
|
| +enum class CopyMode {
|
| + MoveOnly,
|
| + Copyable,
|
| +};
|
| +
|
| +enum class RepeatMode {
|
| + Once,
|
| + Repeating,
|
| +};
|
| +
|
| +} // namespace internal
|
| +
|
| +template <typename Signature,
|
| + internal::CopyMode copy_mode = internal::CopyMode::Copyable,
|
| + internal::RepeatMode repeat_mode = internal::RepeatMode::Repeating>
|
| +class Callback;
|
| +
|
| +// Syntactic sugar to make Callback<void()> easier to declare since it
|
| +// will be used in a lot of APIs with delayed execution.
|
| +using Closure = Callback<void()>;
|
| +
|
| +template <typename Signature>
|
| +using OnceCallback = Callback<Signature,
|
| + internal::CopyMode::MoveOnly,
|
| + internal::RepeatMode::Once>;
|
| +template <typename Signature>
|
| +using RepeatingCallback = Callback<Signature,
|
| + internal::CopyMode::Copyable,
|
| + internal::RepeatMode::Repeating>;
|
| +using OnceClosure = OnceCallback<void()>;
|
| +using RepeatingClosure = RepeatingCallback<void()>;
|
| +
|
| +}
|
| +} // namespace base
|
| #endif // BASE_CALLBACK_FORWARD_H_
|
|
|