Line data Source code
1 : //===- GlobalsStream.h - PDB Index of Symbols by Name ------ ----*- 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_GLOBALS_STREAM_H
11 : #define LLVM_DEBUGINFO_PDB_RAW_GLOBALS_STREAM_H
12 :
13 : #include "llvm/DebugInfo/MSF/MappedBlockStream.h"
14 : #include "llvm/DebugInfo/MSF/StreamArray.h"
15 : #include "llvm/DebugInfo/PDB/PDBTypes.h"
16 : #include "llvm/DebugInfo/PDB/Raw/RawConstants.h"
17 : #include "llvm/DebugInfo/PDB/Raw/RawTypes.h"
18 : #include "llvm/Support/Error.h"
19 :
20 : namespace llvm {
21 : namespace pdb {
22 : class DbiStream;
23 : class PDBFile;
24 :
25 4 : class GlobalsStream {
26 : public:
27 : explicit GlobalsStream(std::unique_ptr<msf::MappedBlockStream> Stream);
28 : ~GlobalsStream();
29 : Error commit();
30 : msf::FixedStreamArray<support::ulittle32_t> getHashBuckets() const {
31 : return HashBuckets;
32 : }
33 : uint32_t getNumBuckets() const { return NumBuckets; }
34 : Error reload();
35 :
36 : private:
37 : msf::FixedStreamArray<support::ulittle32_t> HashBuckets;
38 : msf::FixedStreamArray<PSHashRecord> HashRecords;
39 : uint32_t NumBuckets;
40 : std::unique_ptr<msf::MappedBlockStream> Stream;
41 : };
42 : }
43 : }
44 :
45 : #endif
|