1254721Semaste//===-- DWARFDebugPubnames.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_DWARFDebugPubnames_h_
11254721Semaste#define SymbolFileDWARF_DWARFDebugPubnames_h_
12254721Semaste
13254721Semaste#include "SymbolFileDWARF.h"
14254721Semaste
15254721Semaste#include <list>
16254721Semaste
17254721Semaste#include "DWARFDebugPubnamesSet.h"
18254721Semaste
19254721Semasteclass DWARFDebugPubnames
20254721Semaste{
21254721Semastepublic:
22254721Semaste            DWARFDebugPubnames();
23263363Semaste    bool    Extract(const lldb_private::DWARFDataExtractor& data);
24254721Semaste    bool    GeneratePubnames(SymbolFileDWARF* dwarf2Data);
25254721Semaste    bool    GeneratePubBaseTypes(SymbolFileDWARF* dwarf2Data);
26254721Semaste
27254721Semaste    void    Dump(lldb_private::Log *s) const;
28254721Semaste    bool    Find(const char* name, bool ignore_case, std::vector<dw_offset_t>& die_offset_coll) const;
29254721Semaste    bool    Find(const lldb_private::RegularExpression& regex, std::vector<dw_offset_t>& die_offsets) const;
30254721Semasteprotected:
31254721Semaste    typedef std::list<DWARFDebugPubnamesSet>    collection;
32254721Semaste    typedef collection::iterator                iterator;
33254721Semaste    typedef collection::const_iterator          const_iterator;
34254721Semaste
35254721Semaste    collection m_sets;
36254721Semaste};
37254721Semaste
38254721Semaste#endif  // SymbolFileDWARF_DWARFDebugPubnames_h_
39