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 10 #ifndef LLDB_SBFileSpecList_h_ 11 #define LLDB_SBFileSpecList_h_ 12 13 #include "lldb/API/SBDefines.h" 14 15 namespace lldb { 16 17 class LLDB_API SBFileSpecList { 18 public: 19 SBFileSpecList(); 20 21 SBFileSpecList(const lldb::SBFileSpecList &rhs); 22 23 ~SBFileSpecList(); 24 25 const SBFileSpecList &operator=(const lldb::SBFileSpecList &rhs); 26 27 uint32_t GetSize() const; 28 29 bool GetDescription(SBStream &description) const; 30 31 void Append(const SBFileSpec &sb_file); 32 33 bool AppendIfUnique(const SBFileSpec &sb_file); 34 35 void Clear(); 36 37 uint32_t FindFileIndex(uint32_t idx, const SBFileSpec &sb_file, bool full); 38 39 const SBFileSpec GetFileSpecAtIndex(uint32_t idx) const; 40 41 private: 42 friend class SBTarget; 43 44 const lldb_private::FileSpecList *operator->() const; 45 46 const lldb_private::FileSpecList *get() const; 47 48 const lldb_private::FileSpecList &operator*() const; 49 50 const lldb_private::FileSpecList &ref() const; 51 52 std::unique_ptr<lldb_private::FileSpecList> m_opaque_up; 53 }; 54 55 } // namespace lldb 56 57 #endif // LLDB_SBFileSpecList_h_ 58