IPDBEnumChildren.h 917 B

123456789101112131415161718192021222324252627282930313233
  1. //===- IPDBEnumChildren.h - base interface for child enumerator -*- 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_IPDBENUMCHILDREN_H
  10. #define LLVM_DEBUGINFO_PDB_IPDBENUMCHILDREN_H
  11. #include "PDBTypes.h"
  12. #include <memory>
  13. namespace llvm {
  14. template <typename ChildType> class IPDBEnumChildren {
  15. public:
  16. typedef std::unique_ptr<ChildType> ChildTypePtr;
  17. typedef IPDBEnumChildren<ChildType> MyType;
  18. virtual ~IPDBEnumChildren() {}
  19. virtual uint32_t getChildCount() const = 0;
  20. virtual ChildTypePtr getChildAtIndex(uint32_t Index) const = 0;
  21. virtual ChildTypePtr getNext() = 0;
  22. virtual void reset() = 0;
  23. virtual MyType *clone() const = 0;
  24. };
  25. }
  26. #endif