• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef CC_RESOURCES_SINGLE_RELEASE_CALLBACK_IMPL_H_
6 #define CC_RESOURCES_SINGLE_RELEASE_CALLBACK_IMPL_H_
7 
8 #include "base/memory/scoped_ptr.h"
9 #include "cc/base/cc_export.h"
10 #include "cc/resources/release_callback_impl.h"
11 
12 namespace cc {
13 
14 class CC_EXPORT SingleReleaseCallbackImpl {
15  public:
Create(const ReleaseCallbackImpl & cb)16   static scoped_ptr<SingleReleaseCallbackImpl> Create(
17       const ReleaseCallbackImpl& cb) {
18     return make_scoped_ptr(new SingleReleaseCallbackImpl(cb));
19   }
20 
21   ~SingleReleaseCallbackImpl();
22 
23   void Run(uint32 sync_point,
24            bool is_lost,
25            BlockingTaskRunner* main_thread_task_runner);
26 
27  private:
28   explicit SingleReleaseCallbackImpl(const ReleaseCallbackImpl& callback);
29 
30   bool has_been_run_;
31   ReleaseCallbackImpl callback_;
32 };
33 
34 }  // namespace cc
35 
36 #endif  // CC_RESOURCES_SINGLE_RELEASE_CALLBACK_IMPL_H_
37