Index: cc/output/promise_list.h |
diff --git a/cc/output/promise_list.h b/cc/output/promise_list.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a975c729542bb0417dc9fcf912aa0463fc77a9e6 |
--- /dev/null |
+++ b/cc/output/promise_list.h |
@@ -0,0 +1,38 @@ |
+// Copyright 2015 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 CC_OUTPUT_PROMISE_LIST_H_ |
+#define CC_OUTPUT_PROMISE_LIST_H_ |
+ |
+#include "cc/base/scoped_ptr_vector.h" |
+#include "cc/output/promise.h" |
+ |
+namespace cc { |
+ |
+class CC_EXPORT PromiseList { |
+ public: |
+ PromiseList(); |
+ ~PromiseList(); |
+ |
+ void QueuePromise(scoped_ptr<Promise>); |
+ void TakePromises(PromiseList*); |
+ void PassPromises(PromiseList*); |
+ |
+ void OnDidSwap(CompositorFrameMetadata* metadata); |
+ void OnDidNotSwap(Promise::DidNotSwap::Reason reason); |
+ |
+ void OnDidActivate(CompositorFrameMetadata* metadata); |
+ void OnDidNotActivate(Promise::DidNotActivate::Reason reason); |
+ |
+ size_t size() const { return promises_.size(); } |
+ |
+ void GetTraceIds(std::vector<int64>* trace_ids) const; |
+ |
+ private: |
+ ScopedPtrVector<Promise> promises_; |
+}; |
+ |
+} // namespace cc |
+ |
+#endif // CC_OUTPUT_PROMISE_LIST_H_ |