1 //===-- SBFileSpecList.h --------------------------------------------*- C++ 2 //-*-===// 3 // 4 // The LLVM Compiler Infrastructure 5 // 6 // This file is distributed under the University of Illinois Open Source 7 // License. See LICENSE.TXT for details. 8 // 9 //===----------------------------------------------------------------------===// 10 11 #ifndef LLDB_SBFileSpecList_h_ 12 #define LLDB_SBFileSpecList_h_ 13 14 #include "lldb/API/SBDefines.h" 15 16 namespace lldb { 17 18 class LLDB_API SBFileSpecList { 19 public: 20 SBFileSpecList(); 21 22 SBFileSpecList(const lldb::SBFileSpecList &rhs); 23 24 ~SBFileSpecList(); 25 26 const SBFileSpecList &operator=(const lldb::SBFileSpecList &rhs); 27 28 uint32_t GetSize() const; 29 30 bool GetDescription(SBStream &description) const; 31 32 void Append(const SBFileSpec &sb_file); 33 34 bool AppendIfUnique(const SBFileSpec &sb_file); 35 36 void Clear(); 37 38 uint32_t FindFileIndex(uint32_t idx, const SBFileSpec &sb_file, bool full); 39 40 const SBFileSpec GetFileSpecAtIndex(uint32_t idx) const; 41 42 private: 43 friend class SBTarget; 44 45 const lldb_private::FileSpecList *operator->() const; 46 47 const lldb_private::FileSpecList *get() const; 48 49 const lldb_private::FileSpecList &operator*() const; 50 51 const lldb_private::FileSpecList &ref() const; 52 53 std::unique_ptr<lldb_private::FileSpecList> m_opaque_ap; 54 }; 55 56 } // namespace lldb 57 58 #endif // LLDB_SBFileSpecList_h_ 59