Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / tools / clang / blink_gc_plugin / tests / trace_collections.h
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