1317017Sdim//===- SymbolStream.cpp - PDB Symbol Stream Access --------------*- C++ -*-===// 2317017Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6317017Sdim// 7317017Sdim//===----------------------------------------------------------------------===// 8317017Sdim 9317017Sdim#ifndef LLVM_DEBUGINFO_PDB_RAW_PDBSYMBOLSTREAM_H 10317017Sdim#define LLVM_DEBUGINFO_PDB_RAW_PDBSYMBOLSTREAM_H 11317017Sdim 12317017Sdim#include "llvm/DebugInfo/CodeView/SymbolRecord.h" 13317017Sdim 14317017Sdim#include "llvm/Support/Error.h" 15317017Sdim 16317017Sdimnamespace llvm { 17317017Sdimnamespace msf { 18317017Sdimclass MappedBlockStream; 19317017Sdim} 20317017Sdimnamespace pdb { 21317017Sdimclass PDBFile; 22317017Sdim 23317017Sdimclass SymbolStream { 24317017Sdimpublic: 25317017Sdim SymbolStream(std::unique_ptr<msf::MappedBlockStream> Stream); 26317017Sdim ~SymbolStream(); 27317017Sdim Error reload(); 28317017Sdim 29320041Sdim const codeview::CVSymbolArray &getSymbolArray() const { 30320041Sdim return SymbolRecords; 31320041Sdim } 32320041Sdim 33327952Sdim codeview::CVSymbol readRecord(uint32_t Offset) const; 34327952Sdim 35317017Sdim iterator_range<codeview::CVSymbolArray::Iterator> 36317017Sdim getSymbols(bool *HadError) const; 37317017Sdim 38317017Sdim Error commit(); 39317017Sdim 40317017Sdimprivate: 41317017Sdim codeview::CVSymbolArray SymbolRecords; 42317017Sdim std::unique_ptr<msf::MappedBlockStream> Stream; 43317017Sdim}; 44317017Sdim} 45317017Sdim} 46317017Sdim 47317017Sdim#endif 48