SBFileSpecList.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. //===-- SBFileSpecList.h --------------------------------------------*- C++
  2. //-*-===//
  3. //
  4. // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  5. // See https://llvm.org/LICENSE.txt for license information.
  6. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  7. //
  8. //===----------------------------------------------------------------------===//
  9. #ifndef LLDB_API_SBFILESPECLIST_H
  10. #define LLDB_API_SBFILESPECLIST_H
  11. #include "lldb/API/SBDefines.h"
  12. namespace lldb {
  13. class LLDB_API SBFileSpecList {
  14. public:
  15. SBFileSpecList();
  16. SBFileSpecList(const lldb::SBFileSpecList &rhs);
  17. ~SBFileSpecList();
  18. const SBFileSpecList &operator=(const lldb::SBFileSpecList &rhs);
  19. uint32_t GetSize() const;
  20. bool GetDescription(SBStream &description) const;
  21. void Append(const SBFileSpec &sb_file);
  22. bool AppendIfUnique(const SBFileSpec &sb_file);
  23. void Clear();
  24. uint32_t FindFileIndex(uint32_t idx, const SBFileSpec &sb_file, bool full);
  25. const SBFileSpec GetFileSpecAtIndex(uint32_t idx) const;
  26. private:
  27. friend class SBTarget;
  28. const lldb_private::FileSpecList *operator->() const;
  29. const lldb_private::FileSpecList *get() const;
  30. const lldb_private::FileSpecList &operator*() const;
  31. const lldb_private::FileSpecList &ref() const;
  32. std::unique_ptr<lldb_private::FileSpecList> m_opaque_up;
  33. };
  34. } // namespace lldb
  35. #endif // LLDB_API_SBFILESPECLIST_H