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.
8 #include "wtf/RefCounted.h"
9 #include "wtf/RefPtr.h"
10 #include "wtf/Vector.h"
15 class RefVector
: public RefCounted
<RefVector
<T
>> {
17 static PassRefPtr
<RefVector
> create() { return adoptRef(new RefVector
<T
>); }
18 PassRefPtr
<RefVector
> copy() { return adoptRef(new RefVector
<T
>(*this)); }
20 const T
& operator[](size_t i
) const { return m_vector
[i
]; }
21 T
& operator[](size_t i
) { return m_vector
[i
]; }
22 const T
& at(size_t i
) const { return m_vector
.at(i
); }
23 T
& at(size_t i
) { return m_vector
.at(i
); }
25 bool operator==(const RefVector
& o
) const { return m_vector
== o
.m_vector
; }
26 bool operator!=(const RefVector
& o
) const { return m_vector
!= o
.m_vector
; }
28 size_t size() const { return m_vector
.size(); }
29 bool isEmpty() const { return !size(); }
30 void append(const T
& decoration
) { m_vector
.append(decoration
); }
31 const Vector
<T
>& vector() const { return m_vector
; }
36 RefVector(const RefVector
& o
) : m_vector(o
.m_vector
) { }