1//===-- DWARFDebugPubnames.h ------------------------------------*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef SymbolFileDWARF_DWARFDebugPubnames_h_
11#define SymbolFileDWARF_DWARFDebugPubnames_h_
12
13#include "SymbolFileDWARF.h"
14
15#include <list>
16
17#include "DWARFDebugPubnamesSet.h"
18
19class DWARFDebugPubnames
20{
21public:
22            DWARFDebugPubnames();
23    bool    Extract(const lldb_private::DataExtractor& data);
24    bool    GeneratePubnames(SymbolFileDWARF* dwarf2Data);
25    bool    GeneratePubBaseTypes(SymbolFileDWARF* dwarf2Data);
26
27    void    Dump(lldb_private::Log *s) const;
28    bool    Find(const char* name, bool ignore_case, std::vector<dw_offset_t>& die_offset_coll) const;
29    bool    Find(const lldb_private::RegularExpression& regex, std::vector<dw_offset_t>& die_offsets) const;
30protected:
31    typedef std::list<DWARFDebugPubnamesSet>    collection;
32    typedef collection::iterator                iterator;
33    typedef collection::const_iterator          const_iterator;
34
35    collection m_sets;
36};
37
38#endif  // SymbolFileDWARF_DWARFDebugPubnames_h_
39