DIADataStream.h 996 B

123456789101112131415161718192021222324252627282930313233
  1. //===- DIADataStream.h - DIA implementation of IPDBDataStream ---*- 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. #ifndef LLVM_DEBUGINFO_PDB_DIA_DIADATASTREAM_H
  10. #define LLVM_DEBUGINFO_PDB_DIA_DIADATASTREAM_H
  11. #include "DIASupport.h"
  12. #include "llvm/DebugInfo/PDB/IPDBDataStream.h"
  13. namespace llvm {
  14. class DIADataStream : public IPDBDataStream {
  15. public:
  16. explicit DIADataStream(CComPtr<IDiaEnumDebugStreamData> DiaStreamData);
  17. uint32_t getRecordCount() const override;
  18. std::string getName() const override;
  19. llvm::Optional<RecordType> getItemAtIndex(uint32_t Index) const override;
  20. bool getNext(RecordType &Record) override;
  21. void reset() override;
  22. DIADataStream *clone() const override;
  23. private:
  24. CComPtr<IDiaEnumDebugStreamData> StreamData;
  25. };
  26. }
  27. #endif