124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===-- DWARFDebugPubnames.h ------------------------------------*- C++ -*-===//
224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//
324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//                     The LLVM Compiler Infrastructure
424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//
524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// This file is distributed under the University of Illinois Open Source
624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// License. See LICENSE.TXT for details.
724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//
824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===----------------------------------------------------------------------===//
924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
10d996d0c32b483c2190e1eb288cd3bbbd259c2960Greg Clayton#ifndef SymbolFileDWARF_DWARFDebugPubnames_h_
1124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define SymbolFileDWARF_DWARFDebugPubnames_h_
1224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include "SymbolFileDWARF.h"
1424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include <list>
1624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include "DWARFDebugPubnamesSet.h"
1824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass DWARFDebugPubnames
2024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{
2124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerpublic:
2224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner            DWARFDebugPubnames();
2324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    bool    Extract(const lldb_private::DataExtractor& data);
2424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    bool    GeneratePubnames(SymbolFileDWARF* dwarf2Data);
2524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    bool    GeneratePubBaseTypes(SymbolFileDWARF* dwarf2Data);
2624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
2724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    void    Dump(lldb_private::Log *s) const;
2824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    bool    Find(const char* name, bool ignore_case, std::vector<dw_offset_t>& die_offset_coll) const;
2924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    bool    Find(const lldb_private::RegularExpression& regex, std::vector<dw_offset_t>& die_offsets) const;
3024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerprotected:
3124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    typedef std::list<DWARFDebugPubnamesSet>    collection;
3224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    typedef collection::iterator                iterator;
3324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    typedef collection::const_iterator          const_iterator;
3424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
3524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    collection m_sets;
3624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner};
3724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
3824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif  // SymbolFileDWARF_DWARFDebugPubnames_h_
39