1351278Sdim//==- NativeEnumInjectedSources.cpp - Native Injected Source Enumerator --*-==// 2351278Sdim// 3351278Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4351278Sdim// See https://llvm.org/LICENSE.txt for license information. 5351278Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6351278Sdim// 7351278Sdim//===----------------------------------------------------------------------===// 8351278Sdim 9351278Sdim#ifndef LLVM_DEBUGINFO_PDB_NATIVE_NATIVEENUMINJECTEDSOURCES_H 10351278Sdim#define LLVM_DEBUGINFO_PDB_NATIVE_NATIVEENUMINJECTEDSOURCES_H 11351278Sdim 12351278Sdim#include "llvm/DebugInfo/PDB/IPDBEnumChildren.h" 13351278Sdim#include "llvm/DebugInfo/PDB/IPDBInjectedSource.h" 14351278Sdim#include "llvm/DebugInfo/PDB/Native/InjectedSourceStream.h" 15351278Sdim 16351278Sdimnamespace llvm { 17351278Sdimnamespace pdb { 18351278Sdim 19351278Sdimclass InjectedSourceStream; 20351278Sdimclass PDBStringTable; 21351278Sdim 22351278Sdimclass NativeEnumInjectedSources : public IPDBEnumChildren<IPDBInjectedSource> { 23351278Sdimpublic: 24351278Sdim NativeEnumInjectedSources(PDBFile &File, const InjectedSourceStream &IJS, 25351278Sdim const PDBStringTable &Strings); 26351278Sdim 27351278Sdim uint32_t getChildCount() const override; 28351278Sdim std::unique_ptr<IPDBInjectedSource> 29351278Sdim getChildAtIndex(uint32_t Index) const override; 30351278Sdim std::unique_ptr<IPDBInjectedSource> getNext() override; 31351278Sdim void reset() override; 32351278Sdim 33351278Sdimprivate: 34351278Sdim PDBFile &File; 35351278Sdim const InjectedSourceStream &Stream; 36351278Sdim const PDBStringTable &Strings; 37351278Sdim InjectedSourceStream::const_iterator Cur; 38351278Sdim}; 39351278Sdim 40351278Sdim} // namespace pdb 41351278Sdim} // namespace llvm 42351278Sdim 43351278Sdim#endif 44