Home | History | Annotate | Line # | Download | only in PDB
      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