1//===- DIASourceFile.h - DIA implementation of IPDBSourceFile ---*- 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_DIA_DIASOURCEFILE_H
11#define LLVM_DEBUGINFO_PDB_DIA_DIASOURCEFILE_H
12
13#include "DIASupport.h"
14#include "llvm/DebugInfo/PDB/IPDBSourceFile.h"
15
16namespace llvm {
17namespace pdb {
18class DIASession;
19
20class DIASourceFile : public IPDBSourceFile {
21public:
22  explicit DIASourceFile(const DIASession &Session,
23                         CComPtr<IDiaSourceFile> DiaSourceFile);
24
25  std::string getFileName() const override;
26  uint32_t getUniqueId() const override;
27  std::string getChecksum() const override;
28  PDB_Checksum getChecksumType() const override;
29  std::unique_ptr<IPDBEnumChildren<PDBSymbolCompiland>>
30  getCompilands() const override;
31
32  CComPtr<IDiaSourceFile> getDiaFile() const { return SourceFile; }
33
34private:
35  const DIASession &Session;
36  CComPtr<IDiaSourceFile> SourceFile;
37};
38}
39}
40
41#endif
42