SBBlock.h revision 538eb82a89a68dbc57251915080bd5152b333978
1//===-- SBBlock.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_SBBlock_h_
11#define LLDB_SBBlock_h_
12
13#include "lldb/API/SBDefines.h"
14
15namespace lldb {
16
17class SBBlock
18{
19public:
20
21    SBBlock ();
22
23    SBBlock (const lldb::SBBlock &rhs);
24
25    ~SBBlock ();
26
27#ifndef SWIG
28    const lldb::SBBlock &
29    operator = (const lldb::SBBlock &rhs);
30#endif
31
32    bool
33    IsInlined () const;
34
35    bool
36    IsValid () const;
37
38    const char *
39    GetInlinedName () const;
40
41    lldb::SBFileSpec
42    GetInlinedCallSiteFile () const;
43
44    uint32_t
45    GetInlinedCallSiteLine () const;
46
47    uint32_t
48    GetInlinedCallSiteColumn () const;
49
50    lldb::SBBlock
51    GetParent ();
52
53    lldb::SBBlock
54    GetSibling ();
55
56    lldb::SBBlock
57    GetFirstChild ();
58
59    bool
60    GetDescription (lldb::SBStream &description);
61
62private:
63    friend class SBFrame;
64    friend class SBSymbolContext;
65
66#ifndef SWIG
67
68    const lldb_private::Block *
69    get () const;
70
71    SBBlock (lldb_private::Block *lldb_object_ptr);
72
73    void
74    AppendVariables (bool can_create, bool get_parent_variables, lldb_private::VariableList *var_list);
75
76#endif
77
78    lldb_private::Block *m_opaque_ptr;
79};
80
81
82} // namespace lldb
83
84#endif // LLDB_SBBlock_h_
85