1 //===-- SBValueList.h -------------------------------------------*- C++ -*-===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 #ifndef LLDB_SBValueList_h_
10 #define LLDB_SBValueList_h_
12 #include "lldb/API/SBDefines.h"
18 class LLDB_API SBValueList {
22 SBValueList(const lldb::SBValueList &rhs);
26 explicit operator bool() const;
32 void Append(const lldb::SBValue &val_obj);
34 void Append(const lldb::SBValueList &value_list);
36 uint32_t GetSize() const;
38 lldb::SBValue GetValueAtIndex(uint32_t idx) const;
40 lldb::SBValue GetFirstValueByName(const char *name) const;
42 lldb::SBValue FindValueObjectByUID(lldb::user_id_t uid);
44 const lldb::SBValueList &operator=(const lldb::SBValueList &rhs);
47 // only useful for visualizing the pointer or comparing two SBValueLists to
48 // see if they are backed by the same underlying Impl.
54 SBValueList(const ValueListImpl *lldb_object_ptr);
56 void Append(lldb::ValueObjectSP &val_obj_sp);
58 void CreateIfNeeded();
60 ValueListImpl *operator->();
62 ValueListImpl &operator*();
64 const ValueListImpl *operator->() const;
66 const ValueListImpl &operator*() const;
70 std::unique_ptr<ValueListImpl> m_opaque_up;
75 #endif // LLDB_SBValueList_h_