• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_
100