| Index: base/callback_forward.h
|
| diff --git a/base/callback_forward.h b/base/callback_forward.h
|
| index 8b9b89cdc231bcf1020111e91bcbda14fd4e678c..ce4c3e7192d4d58571ccadf67c7661898c5357a2 100644
|
| --- a/base/callback_forward.h
|
| +++ b/base/callback_forward.h
|
| @@ -12,19 +12,40 @@ namespace internal {
|
| // MoveOnly indicates the Callback is not copyable but movable, and Copyable
|
| // indicates it is copyable and movable.
|
| enum class CopyMode {
|
| - MoveOnly, Copyable,
|
| + MoveOnly,
|
| + Copyable,
|
| +};
|
| +
|
| +enum class RepeatMode {
|
| + Once,
|
| + Repeating,
|
| };
|
|
|
| } // namespace internal
|
|
|
| template <typename Signature,
|
| - internal::CopyMode copy_mode = internal::CopyMode::Copyable>
|
| + 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()>;
|
|
|
| +namespace internal {
|
| +
|
| +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 internal
|
| } // namespace base
|
|
|
| #endif // BASE_CALLBACK_FORWARD_H_
|
|
|