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 16namespace llvm { 17namespace pdb { 18class PDBSymbolCompiland; 19template <typename ChildType> class IPDBEnumChildren; 20class NativeSession; 21 22class NativeSourceFile : public IPDBSourceFile { 23public: 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 34private: 35 NativeSession &Session; 36 uint32_t FileId; 37 const codeview::FileChecksumEntry Checksum; 38}; 39} // namespace pdb 40} // namespace llvm 41#endif 42