1 //===- IPDBSourceFile.h - base interface for a PDB source file --*- 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_IPDBSOURCEFILE_H 10 #define LLVM_DEBUGINFO_PDB_IPDBSOURCEFILE_H 11 12 #include "PDBTypes.h" 13 #include <memory> 14 #include <string> 15 16 namespace llvm { 17 class raw_ostream; 18 19 namespace pdb { 20 21 /// IPDBSourceFile defines an interface used to represent source files whose 22 /// information are stored in the PDB. 23 class IPDBSourceFile { 24 public: 25 virtual ~IPDBSourceFile(); 26 27 void dump(raw_ostream &OS, int Indent) const; 28 29 virtual std::string getFileName() const = 0; 30 virtual uint32_t getUniqueId() const = 0; 31 virtual std::string getChecksum() const = 0; 32 virtual PDB_Checksum getChecksumType() const = 0; 33 virtual std::unique_ptr<IPDBEnumChildren<PDBSymbolCompiland>> 34 getCompilands() const = 0; 35 }; 36 } 37 } 38 39 #endif 40