1 // Copyright 2013 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_H_ 6 #define CC_RESOURCES_SINGLE_RELEASE_CALLBACK_H_ 7 8 #include "base/memory/scoped_ptr.h" 9 #include "cc/base/cc_export.h" 10 #include "cc/resources/release_callback.h" 11 12 namespace cc { 13 14 class CC_EXPORT SingleReleaseCallback { 15 public: Create(const ReleaseCallback & cb)16 static scoped_ptr<SingleReleaseCallback> Create(const ReleaseCallback& cb) { 17 return make_scoped_ptr(new SingleReleaseCallback(cb)); 18 } 19 20 ~SingleReleaseCallback(); 21 22 void Run(uint32 sync_point, bool is_lost); 23 24 private: 25 explicit SingleReleaseCallback(const ReleaseCallback& callback); 26 27 bool has_been_run_; 28 ReleaseCallback callback_; 29 }; 30 31 } // namespace cc 32 33 #endif // CC_RESOURCES_SINGLE_RELEASE_CALLBACK_H_ 34