1//===- IPDBSourceFile.h - base interface for a PDB source file --*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10#ifndef LLVM_DEBUGINFO_PDB_IPDBSOURCEFILE_H 11#define LLVM_DEBUGINFO_PDB_IPDBSOURCEFILE_H 12 13#include "PDBTypes.h" 14#include <memory> 15#include <string> 16 17namespace llvm { 18class raw_ostream; 19 20namespace pdb { 21 22/// IPDBSourceFile defines an interface used to represent source files whose 23/// information are stored in the PDB. 24class IPDBSourceFile { 25public: 26 virtual ~IPDBSourceFile(); 27 28 void dump(raw_ostream &OS, int Indent) const; 29 30 virtual std::string getFileName() const = 0; 31 virtual uint32_t getUniqueId() const = 0; 32 virtual std::string getChecksum() const = 0; 33 virtual PDB_Checksum getChecksumType() const = 0; 34 virtual std::unique_ptr<IPDBEnumChildren<PDBSymbolCompiland>> 35 getCompilands() const = 0; 36}; 37} 38} 39 40#endif 41