1254721Semaste//===-- NameToDIE.h ---------------------------------------------*- C++ -*-===// 2254721Semaste// 3254721Semaste// The LLVM Compiler Infrastructure 4254721Semaste// 5254721Semaste// This file is distributed under the University of Illinois Open Source 6254721Semaste// License. See LICENSE.TXT for details. 7254721Semaste// 8254721Semaste//===----------------------------------------------------------------------===// 9254721Semaste 10254721Semaste#ifndef SymbolFileDWARF_NameToDIE_h_ 11254721Semaste#define SymbolFileDWARF_NameToDIE_h_ 12254721Semaste 13254721Semaste#include "lldb/Core/UniqueCStringMap.h" 14254721Semaste 15254721Semaste#include <functional> 16254721Semaste 17254721Semaste#include "lldb/lldb-defines.h" 18254721Semaste 19254721Semasteclass SymbolFileDWARF; 20254721Semaste 21254721Semastetypedef std::vector<uint32_t> DIEArray; 22254721Semaste 23254721Semasteclass NameToDIE 24254721Semaste{ 25254721Semastepublic: 26254721Semaste NameToDIE () : 27254721Semaste m_map() 28254721Semaste { 29254721Semaste } 30254721Semaste 31254721Semaste ~NameToDIE () 32254721Semaste { 33254721Semaste } 34254721Semaste 35254721Semaste void 36254721Semaste Dump (lldb_private::Stream *s); 37254721Semaste 38254721Semaste void 39254721Semaste Insert (const lldb_private::ConstString& name, uint32_t die_offset); 40254721Semaste 41254721Semaste void 42254721Semaste Finalize(); 43254721Semaste 44254721Semaste size_t 45254721Semaste Find (const lldb_private::ConstString &name, 46254721Semaste DIEArray &info_array) const; 47254721Semaste 48254721Semaste size_t 49254721Semaste Find (const lldb_private::RegularExpression& regex, 50254721Semaste DIEArray &info_array) const; 51254721Semaste 52254721Semaste size_t 53254721Semaste FindAllEntriesForCompileUnit (uint32_t cu_offset, 54254721Semaste uint32_t cu_end_offset, 55254721Semaste DIEArray &info_array) const; 56254721Semaste 57254721Semaste void 58254721Semaste ForEach (std::function <bool(const char *name, uint32_t die_offset)> const &callback) const; 59254721Semaste 60254721Semasteprotected: 61254721Semaste lldb_private::UniqueCStringMap<uint32_t> m_map; 62254721Semaste 63254721Semaste}; 64254721Semaste 65254721Semaste#endif // SymbolFileDWARF_NameToDIE_h_ 66