1 //===-- SBValueList.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_SBValueList_h_ 11 #define LLDB_SBValueList_h_ 12 13 #include "lldb/API/SBDefines.h" 14 15 class ValueListImpl; 16 17 namespace lldb { 18 19 class SBValueList 20 { 21 public: 22 23 SBValueList (); 24 25 SBValueList (const lldb::SBValueList &rhs); 26 27 ~SBValueList(); 28 29 bool 30 IsValid() const; 31 32 void 33 Clear(); 34 35 void 36 Append (const lldb::SBValue &val_obj); 37 38 void 39 Append (const lldb::SBValueList& value_list); 40 41 uint32_t 42 GetSize() const; 43 44 lldb::SBValue 45 GetValueAtIndex (uint32_t idx) const; 46 47 lldb::SBValue 48 FindValueObjectByUID (lldb::user_id_t uid); 49 50 const lldb::SBValueList & 51 operator = (const lldb::SBValueList &rhs); 52 53 protected: 54 55 // only useful for visualizing the pointer or comparing two SBValueLists 56 // to see if they are backed by the same underlying Impl. 57 void * 58 opaque_ptr (); 59 60 private: 61 friend class SBFrame; 62 63 SBValueList (const ValueListImpl *lldb_object_ptr); 64 65 void 66 Append (lldb::ValueObjectSP& val_obj_sp); 67 68 void 69 CreateIfNeeded (); 70 71 ValueListImpl * 72 operator -> (); 73 74 ValueListImpl & 75 operator* (); 76 77 const ValueListImpl * 78 operator -> () const; 79 80 const ValueListImpl & 81 operator* () const; 82 83 84 ValueListImpl & 85 ref (); 86 87 std::unique_ptr<ValueListImpl> m_opaque_ap; 88 }; 89 90 91 } // namespace lldb 92 93 #endif // LLDB_SBValueList_h_ 94