SBValueList.h revision 63094e0bb161580564954dee512955c1c79d3476
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
15namespace lldb {
16
17class SBValueList
18{
19public:
20
21    SBValueList ();
22
23    SBValueList (const lldb::SBValueList &rhs);
24
25    ~SBValueList();
26
27    bool
28    IsValid() const;
29
30    void
31    Append (const lldb::SBValue &val_obj);
32
33    uint32_t
34    GetSize() const;
35
36    lldb::SBValue
37    GetValueAtIndex (uint32_t idx) const;
38
39    lldb::SBValue
40    FindValueObjectByUID (lldb::user_id_t uid);
41
42
43#ifndef SWIG
44    const lldb::SBValueList &
45    operator = (const lldb::SBValueList &rhs);
46
47    lldb_private::ValueObjectList *
48    operator -> ();
49
50    lldb_private::ValueObjectList &
51    operator* ();
52
53    const lldb_private::ValueObjectList *
54    operator -> () const;
55
56    const lldb_private::ValueObjectList &
57    operator* () const;
58#endif
59
60private:
61    friend class SBFrame;
62
63    SBValueList (const lldb_private::ValueObjectList *lldb_object_ptr);
64
65    void
66    Append (lldb::ValueObjectSP& val_obj_sp);
67
68    void
69    CreateIfNeeded ();
70
71    std::auto_ptr<lldb_private::ValueObjectList> m_opaque_ap;
72};
73
74
75} // namespace lldb
76
77#endif  // LLDB_SBValueList_h_
78