]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/include/lldb/API/SBValueList.h
Update llvm, clang and lldb to trunk r257626, and update build glue.
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / include / lldb / API / SBValueList.h
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 {
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     GetFirstValueByName (const char* name) const;
49
50     lldb::SBValue
51     FindValueObjectByUID (lldb::user_id_t uid);
52
53     const lldb::SBValueList &
54     operator = (const lldb::SBValueList &rhs);
55
56 protected:
57     
58     // only useful for visualizing the pointer or comparing two SBValueLists
59     // to see if they are backed by the same underlying Impl.
60     void *
61     opaque_ptr ();
62
63 private:
64     friend class SBFrame;
65     
66     SBValueList (const ValueListImpl *lldb_object_ptr);
67
68     void
69     Append (lldb::ValueObjectSP& val_obj_sp);
70
71     void
72     CreateIfNeeded ();
73
74     ValueListImpl *
75     operator -> ();
76     
77     ValueListImpl &
78     operator* ();
79     
80     const ValueListImpl *
81     operator -> () const;
82     
83     const ValueListImpl &
84     operator* () const;
85     
86     
87     ValueListImpl &
88     ref ();
89     
90     std::unique_ptr<ValueListImpl> m_opaque_ap;
91 };
92
93
94 } // namespace lldb
95
96 #endif  // LLDB_SBValueList_h_