LLDB API Documentation

SBValueList.h
Go to the documentation of this file.
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 LLDB_API SBValueList {
20 public:
21  SBValueList();
22 
23  SBValueList(const lldb::SBValueList &rhs);
24 
25  ~SBValueList();
26 
27  bool IsValid() const;
28 
29  void Clear();
30 
31  void Append(const lldb::SBValue &val_obj);
32 
33  void Append(const lldb::SBValueList &value_list);
34 
35  uint32_t GetSize() const;
36 
37  lldb::SBValue GetValueAtIndex(uint32_t idx) const;
38 
39  lldb::SBValue GetFirstValueByName(const char *name) const;
40 
41  lldb::SBValue FindValueObjectByUID(lldb::user_id_t uid);
42 
43  const lldb::SBValueList &operator=(const lldb::SBValueList &rhs);
44 
45 protected:
46  // only useful for visualizing the pointer or comparing two SBValueLists
47  // to see if they are backed by the same underlying Impl.
48  void *opaque_ptr();
49 
50 private:
51  friend class SBFrame;
52 
53  SBValueList(const ValueListImpl *lldb_object_ptr);
54 
55  void Append(lldb::ValueObjectSP &val_obj_sp);
56 
57  void CreateIfNeeded();
58 
59  ValueListImpl *operator->();
60 
61  ValueListImpl &operator*();
62 
63  const ValueListImpl *operator->() const;
64 
65  const ValueListImpl &operator*() const;
66 
67  ValueListImpl &ref();
68 
69  std::unique_ptr<ValueListImpl> m_opaque_ap;
70 };
71 
72 } // namespace lldb
73 
74 #endif // LLDB_SBValueList_h_
class LLDB_API SBValueList
Definition: SBDefines.h:95