blob: 0a1554df88f938499caca7ffd3236fc1a1b571f6 [file] [log] [blame]
Brian Carlstrom7e93b502011-08-04 14:16:22 -07001// Copyright 2011 Google Inc. All Rights Reserved.
2
3#ifndef ART_SRC_INTERN_TABLE_H_
4#define ART_SRC_INTERN_TABLE_H_
5
6#include "unordered_map.h"
7
8#include "heap.h"
9#include "object.h"
10
11namespace art {
12
13class InternTable {
14 public:
15 InternTable();
Elliott Hughesde69d7f2011-08-18 16:49:37 -070016 ~InternTable();
Brian Carlstrom7e93b502011-08-04 14:16:22 -070017 String* Intern(int32_t utf16_length, const char* utf8_data);
18 void VisitRoots(Heap::RootVistor* root_visitor, void* arg);
19
20 private:
21 typedef std::tr1::unordered_multimap<int32_t, String*> Table;
22 Table intern_table_;
23 Mutex* intern_table_lock_;
24};
25
26} // namespace art
27
28#endif // ART_SRC_CLASS_LINKER_H_