1 //===- NativeSourceFile.h - Native source file implementation ---*- 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_NATIVESOURCEFILE_H 10 #define LLVM_DEBUGINFO_PDB_NATIVE_NATIVESOURCEFILE_H 11 12 #include "llvm/DebugInfo/CodeView/DebugChecksumsSubsection.h" 13 #include "llvm/DebugInfo/PDB/IPDBSourceFile.h" 14 #include "llvm/DebugInfo/PDB/PDBTypes.h" 15 16 namespace llvm { 17 namespace pdb { 18 class PDBSymbolCompiland; 19 template <typename ChildType> class IPDBEnumChildren; 20 class NativeSession; 21 22 class NativeSourceFile : public IPDBSourceFile { 23 public: 24 explicit NativeSourceFile(NativeSession &Session, uint32_t FileId, 25 const codeview::FileChecksumEntry &Checksum); 26 27 std::string getFileName() const override; 28 uint32_t getUniqueId() const override; 29 std::string getChecksum() const override; 30 PDB_Checksum getChecksumType() const override; 31 std::unique_ptr<IPDBEnumChildren<PDBSymbolCompiland>> 32 getCompilands() const override; 33 34 private: 35 NativeSession &Session; 36 uint32_t FileId; 37 const codeview::FileChecksumEntry Checksum; 38 }; 39 } // namespace pdb 40 } // namespace llvm 41 #endif 42