Line data Source code
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 :
17 : namespace llvm {
18 : class raw_ostream;
19 :
20 : namespace pdb {
21 :
22 : /// IPDBSourceFile defines an interface used to represent source files whose
23 : /// information are stored in the PDB.
24 0 : class IPDBSourceFile {
25 : public:
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
|