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