OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CC_SCOPED_PTR_VECTOR_H_ | 5 #ifndef CC_SCOPED_PTR_VECTOR_H_ |
6 #define CC_SCOPED_PTR_VECTOR_H_ | 6 #define CC_SCOPED_PTR_VECTOR_H_ |
7 | 7 |
8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
73 | 73 |
74 void clear() { | 74 void clear() { |
75 STLDeleteElements(&data_); | 75 STLDeleteElements(&data_); |
76 } | 76 } |
77 | 77 |
78 void append(scoped_ptr<T> item) { | 78 void append(scoped_ptr<T> item) { |
79 data_.push_back(item.release()); | 79 data_.push_back(item.release()); |
80 } | 80 } |
81 | 81 |
82 void insert(size_t index, scoped_ptr<T> item) { | 82 void insert(size_t index, scoped_ptr<T> item) { |
83 DCHECK(index < size()); | 83 DCHECK(index <= size()); |
84 data_.insert(data_.begin() + index, item.release()); | 84 data_.insert(data_.begin() + index, item.release()); |
85 } | 85 } |
86 | 86 |
87 void swap(ScopedPtrVector<T>& other) { | 87 void swap(ScopedPtrVector<T>& other) { |
88 data_.swap(other.data_); | 88 data_.swap(other.data_); |
89 } | 89 } |
90 | 90 |
91 iterator begin() { return data_.begin(); } | 91 iterator begin() { return data_.begin(); } |
92 const_iterator begin() const { return data_.begin(); } | 92 const_iterator begin() const { return data_.begin(); } |
93 iterator end() { return data_.end(); } | 93 iterator end() { return data_.end(); } |
94 const_iterator end() const { return data_.end(); } | 94 const_iterator end() const { return data_.end(); } |
95 | 95 |
96 reverse_iterator rbegin() { return data_.rbegin(); } | 96 reverse_iterator rbegin() { return data_.rbegin(); } |
97 const_reverse_iterator rbegin() const { return data_.rbegin(); } | 97 const_reverse_iterator rbegin() const { return data_.rbegin(); } |
98 reverse_iterator rend() { return data_.rend(); } | 98 reverse_iterator rend() { return data_.rend(); } |
99 const_reverse_iterator rend() const { return data_.rend(); } | 99 const_reverse_iterator rend() const { return data_.rend(); } |
100 | 100 |
101 private: | 101 private: |
102 std::vector<T*> data_; | 102 std::vector<T*> data_; |
103 | 103 |
104 DISALLOW_COPY_AND_ASSIGN(ScopedPtrVector); | 104 DISALLOW_COPY_AND_ASSIGN(ScopedPtrVector); |
105 }; | 105 }; |
106 | 106 |
107 } // namespace cc | 107 } // namespace cc |
108 | 108 |
109 #endif // CC_SCOPED_PTR_VECTOR_H_ | 109 #endif // CC_SCOPED_PTR_VECTOR_H_ |
OLD | NEW |