LLVM  4.0.0
PublicsStream.h
Go to the documentation of this file.
1 //===- PublicsStream.h - PDB Public Symbol Stream -------- ------*- 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 LLVM_DEBUGINFO_PDB_RAW_PUBLICSSTREAM_H
11 #define LLVM_DEBUGINFO_PDB_RAW_PUBLICSSTREAM_H
12 
19 
20 #include "llvm/Support/Error.h"
21 
22 namespace llvm {
23 namespace pdb {
24 class DbiStream;
25 struct GSIHashHeader;
26 class PDBFile;
27 
29  struct HeaderInfo;
30 
31 public:
32  PublicsStream(PDBFile &File, std::unique_ptr<msf::MappedBlockStream> Stream);
34  Error reload();
35 
36  uint32_t getSymHash() const;
37  uint32_t getAddrMap() const;
38  uint32_t getNumBuckets() const { return NumBuckets; }
40  getSymbols(bool *HadError) const;
42  return HashBuckets;
43  }
45  return AddressMap;
46  }
48  return ThunkMap;
49  }
51  return SectionOffsets;
52  }
53 
54  Error commit();
55 
56 private:
57  PDBFile &Pdb;
58 
59  std::unique_ptr<msf::MappedBlockStream> Stream;
60  uint32_t NumBuckets = 0;
61  ArrayRef<uint8_t> Bitmap;
67 
68  const HeaderInfo *Header;
69  const GSIHashHeader *HashHdr;
70 };
71 }
72 }
73 
74 #endif
iterator_range< codeview::CVSymbolArray::Iterator > getSymbols(bool *HadError) const
msf::FixedStreamArray< support::ulittle32_t > getAddressMap() const
Definition: PublicsStream.h:44
Header of the hash tables found in the globals and publics sections.
Definition: GSI.h:48
msf::FixedStreamArray< SectionOffset > getSectionOffsets() const
Definition: PublicsStream.h:50
msf::FixedStreamArray< support::ulittle32_t > getThunkMap() const
Definition: PublicsStream.h:47
uint32_t getSymHash() const
PublicsStream(PDBFile &File, std::unique_ptr< msf::MappedBlockStream > Stream)
A range adaptor for a pair of iterators.
uint32_t getNumBuckets() const
Definition: PublicsStream.h:38
uint32_t getAddrMap() const
Lightweight error class with error context and mandatory checking.
msf::FixedStreamArray< support::ulittle32_t > getHashBuckets() const
Definition: PublicsStream.h:41