| Index: components/scheduler/child/cancelable_closure_holder.h
|
| diff --git a/components/scheduler/child/cancelable_closure_holder.h b/components/scheduler/child/cancelable_closure_holder.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..20968a46096aa5853cc3fb6dcc75dfa198d8cda3
|
| --- /dev/null
|
| +++ b/components/scheduler/child/cancelable_closure_holder.h
|
| @@ -0,0 +1,39 @@
|
| +// Copyright 2014 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef COMPONENTS_SCHEDULER_CHILD_CANCELABLE_CLOSURE_HOLDER_H_
|
| +#define COMPONENTS_SCHEDULER_CHILD_CANCELABLE_CLOSURE_HOLDER_H_
|
| +
|
| +#include "base/cancelable_callback.h"
|
| +
|
| +namespace scheduler {
|
| +
|
| +// A CancelableClosureHolder is a CancelableCallback which resets its wrapped
|
| +// callback with a cached closure whenever it is canceled.
|
| +class CancelableClosureHolder {
|
| + public:
|
| + CancelableClosureHolder();
|
| + ~CancelableClosureHolder();
|
| +
|
| + // Resets the closure to be wrapped by the cancelable callback. Cancels any
|
| + // outstanding callbacks.
|
| + void Reset(const base::Closure& callback);
|
| +
|
| + // Cancels any outstanding closures returned by callback().
|
| + void Cancel();
|
| +
|
| + // Returns a callback that will be disabled by calling Cancel(). Callback
|
| + // must have been set using Reset() before calling this function.
|
| + const base::Closure& callback() const;
|
| +
|
| + private:
|
| + base::Closure callback_;
|
| + base::CancelableClosure cancelable_callback_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(CancelableClosureHolder);
|
| +};
|
| +
|
| +} // namespace scheduler
|
| +
|
| +#endif // COMPONENTS_SCHEDULER_CHILD_CANCELABLE_CLOSURE_HOLDER_H_
|
|
|