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 TRACE_COLLECTIONS_H_
6 #define TRACE_COLLECTIONS_H_
7 
8 #include "heap/stubs.h"
9 
10 namespace blink {
11 
12 class HeapObject : public GarbageCollected<HeapObject> {
13 public:
14     void Trace(Visitor*);
15 private:
16     HeapVector<Member<HeapObject> > m_heapVector;
17     Vector<Member<HeapObject>, 0, HeapAllocator> m_wtfVector;
18 
19     HeapDeque<Member<HeapObject> > m_heapDeque;
20     Deque<Member<HeapObject>, 0, HeapAllocator> m_wtfDeque;
21 
22     HeapHashSet<Member<HeapObject> > m_heapSet;
23     HashSet<Member<HeapObject>, void, HeapAllocator> m_wtfSet;
24 
25     HeapListHashSet<Member<HeapObject> > m_heapListSet;
26     ListHashSet<Member<HeapObject>, void, HeapAllocator> m_wtfListSet;
27 
28     HeapLinkedHashSet<Member<HeapObject> > m_heapLinkedSet;
29     LinkedHashSet<Member<HeapObject>, void, HeapAllocator> m_wtfLinkedSet;
30 
31     HeapHashCountedSet<Member<HeapObject> > m_heapCountedSet;
32     HashCountedSet<Member<HeapObject>, void, HeapAllocator> m_wtfCountedSet;
33 
34     HeapHashMap<int, Member<HeapObject> > m_heapMapKey;
35     HeapHashMap<Member<HeapObject>, int > m_heapMapVal;
36     HashMap<int, Member<HeapObject>, void, void, void, HeapAllocator>
37     m_wtfMapKey;
38     HashMap<Member<HeapObject>, int, void, void, void, HeapAllocator>
39     m_wtfMapVal;
40 };
41 
42 }
43 
44 #endif
45