1 //===-- SBValueList.h -------------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef LLDB_SBValueList_h_
11 #define LLDB_SBValueList_h_
13 #include "lldb/API/SBDefines.h"
19 class LLDB_API SBValueList {
23 SBValueList(const lldb::SBValueList &rhs);
31 void Append(const lldb::SBValue &val_obj);
33 void Append(const lldb::SBValueList &value_list);
35 uint32_t GetSize() const;
37 lldb::SBValue GetValueAtIndex(uint32_t idx) const;
39 lldb::SBValue GetFirstValueByName(const char *name) const;
41 lldb::SBValue FindValueObjectByUID(lldb::user_id_t uid);
43 const lldb::SBValueList &operator=(const lldb::SBValueList &rhs);
46 // only useful for visualizing the pointer or comparing two SBValueLists to
47 // see if they are backed by the same underlying Impl.
53 SBValueList(const ValueListImpl *lldb_object_ptr);
55 void Append(lldb::ValueObjectSP &val_obj_sp);
57 void CreateIfNeeded();
59 ValueListImpl *operator->();
61 ValueListImpl &operator*();
63 const ValueListImpl *operator->() const;
65 const ValueListImpl &operator*() const;
69 std::unique_ptr<ValueListImpl> m_opaque_ap;
74 #endif // LLDB_SBValueList_h_