LLVM  15.0.0git
InjectedSourceStream.h
Go to the documentation of this file.
1 //===- InjectedSourceStream.h - PDB Headerblock Stream Access ---*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLVM_DEBUGINFO_PDB_NATIVE_INJECTEDSOURCESTREAM_H
10 #define LLVM_DEBUGINFO_PDB_NATIVE_INJECTEDSOURCESTREAM_H
11 
14 #include "llvm/Support/Error.h"
15 
16 namespace llvm {
17 namespace pdb {
18 struct SrcHeaderBlockEntry;
19 struct SrcHeaderBlockHeader;
20 class PDBStringTable;
21 
23 public:
24  InjectedSourceStream(std::unique_ptr<msf::MappedBlockStream> Stream);
25  Error reload(const PDBStringTable &Strings);
26 
28  const_iterator begin() const { return InjectedSourceTable.begin(); }
29  const_iterator end() const { return InjectedSourceTable.end(); }
30 
31  uint32_t size() const { return InjectedSourceTable.size(); }
32 
33 private:
34  std::unique_ptr<msf::MappedBlockStream> Stream;
35 
36  const SrcHeaderBlockHeader* Header;
37  HashTable<SrcHeaderBlockEntry> InjectedSourceTable;
38 };
39 }
40 } // namespace llvm
41 
42 #endif
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:17
llvm::pdb::InjectedSourceStream::reload
Error reload(const PDBStringTable &Strings)
Definition: InjectedSourceStream.cpp:28
llvm::pdb::HashTable::end
const_iterator end() const
Definition: HashTable.h:213
Error.h
llvm::pdb::InjectedSourceStream::begin
const_iterator begin() const
Definition: InjectedSourceStream.h:28
HashTable.h
llvm::pdb::SrcHeaderBlockHeader
The header preceding the /src/headerblock stream.
Definition: RawTypes.h:321
llvm::pdb::InjectedSourceStream
Definition: InjectedSourceStream.h:22
llvm::pdb::HashTable::begin
const_iterator begin() const
Definition: HashTable.h:212
MappedBlockStream.h
llvm::pdb::PDBStringTable
Definition: PDBStringTable.h:26
llvm::pdb::HashTable::size
uint32_t size() const
Definition: HashTable.h:210
uint32_t
llvm::pdb::InjectedSourceStream::InjectedSourceStream
InjectedSourceStream(std::unique_ptr< msf::MappedBlockStream > Stream)
Definition: InjectedSourceStream.cpp:24
llvm::Error
Lightweight error class with error context and mandatory checking.
Definition: Error.h:155
llvm::pdb::HashTable
Definition: HashTable.h:31
llvm::pdb::InjectedSourceStream::size
uint32_t size() const
Definition: InjectedSourceStream.h:31
llvm::pdb::InjectedSourceStream::end
const_iterator end() const
Definition: InjectedSourceStream.h:29
llvm::pdb::InjectedSourceStream::const_iterator
HashTable< SrcHeaderBlockEntry >::const_iterator const_iterator
Definition: InjectedSourceStream.h:27