]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/llvm/tools/lldb/include/lldb/API/SBLineEntry.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / llvm / tools / lldb / include / lldb / API / SBLineEntry.h
1 //===-- SBLineEntry.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_SBLineEntry_h_
11 #define LLDB_SBLineEntry_h_
12
13 #include "lldb/API/SBDefines.h"
14 #include "lldb/API/SBAddress.h"
15 #include "lldb/API/SBFileSpec.h"
16
17 namespace lldb {
18
19 class SBLineEntry
20 {
21 public:
22
23     SBLineEntry ();
24
25     SBLineEntry (const lldb::SBLineEntry &rhs);
26
27     ~SBLineEntry ();
28
29     const lldb::SBLineEntry &
30     operator = (const lldb::SBLineEntry &rhs);
31
32     lldb::SBAddress
33     GetStartAddress () const;
34
35     lldb::SBAddress
36     GetEndAddress () const;
37
38     bool
39     IsValid () const;
40
41     lldb::SBFileSpec
42     GetFileSpec () const;
43
44     uint32_t
45     GetLine () const;
46
47     uint32_t
48     GetColumn () const;
49
50     void
51     SetFileSpec (lldb::SBFileSpec filespec);
52     
53     void
54     SetLine (uint32_t line);
55     
56     void
57     SetColumn (uint32_t column);
58
59     bool
60     operator == (const lldb::SBLineEntry &rhs) const;
61
62     bool
63     operator != (const lldb::SBLineEntry &rhs) const;
64
65     bool
66     GetDescription (lldb::SBStream &description);
67
68 protected:
69
70     lldb_private::LineEntry *
71     get ();
72     
73 private:
74     friend class SBAddress;
75     friend class SBCompileUnit;
76     friend class SBFrame;
77     friend class SBSymbolContext;
78
79     const lldb_private::LineEntry *
80     operator->() const;
81
82     lldb_private::LineEntry &
83     ref();
84
85     const lldb_private::LineEntry &
86     ref() const;
87
88     SBLineEntry (const lldb_private::LineEntry *lldb_object_ptr);
89
90     void
91     SetLineEntry (const lldb_private::LineEntry &lldb_object_ref);
92
93     std::unique_ptr<lldb_private::LineEntry> m_opaque_ap;
94 };
95
96
97 } // namespace lldb
98
99 #endif // LLDB_SBLineEntry_h_