1//==- NativeEnumInjectedSources.cpp - Native Injected Source Enumerator --*-==//
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_NATIVEENUMINJECTEDSOURCES_H
10#define LLVM_DEBUGINFO_PDB_NATIVE_NATIVEENUMINJECTEDSOURCES_H
11
12#include "llvm/DebugInfo/PDB/IPDBEnumChildren.h"
13#include "llvm/DebugInfo/PDB/IPDBInjectedSource.h"
14#include "llvm/DebugInfo/PDB/Native/InjectedSourceStream.h"
15
16namespace llvm {
17namespace pdb {
18
19class InjectedSourceStream;
20class PDBFile;
21class PDBStringTable;
22
23class NativeEnumInjectedSources : public IPDBEnumChildren<IPDBInjectedSource> {
24public:
25 NativeEnumInjectedSources(PDBFile &File, const InjectedSourceStream &IJS,
26 const PDBStringTable &Strings);
27
28 uint32_t getChildCount() const override;
29 std::unique_ptr<IPDBInjectedSource>
30 getChildAtIndex(uint32_t Index) const override;
31 std::unique_ptr<IPDBInjectedSource> getNext() override;
32 void reset() override;
33
34private:
35 PDBFile &File;
36 const InjectedSourceStream &Stream;
37 const PDBStringTable &Strings;
38 InjectedSourceStream::const_iterator Cur;
39};
40
41} // namespace pdb
42} // namespace llvm
43
44#endif
45

source code of llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumInjectedSources.h