SBLineEntry.h revision 23b8abbe214c252028f6e09f79169529c846409d
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
17namespace lldb {
18
19class SBLineEntry
20{
21public:
22
23    SBLineEntry ();
24
25    SBLineEntry (const lldb::SBLineEntry &rhs);
26
27    ~SBLineEntry ();
28
29#ifndef SWIG
30    const lldb::SBLineEntry &
31    operator = (const lldb::SBLineEntry &rhs);
32#endif
33
34    lldb::SBAddress
35    GetStartAddress () const;
36
37    lldb::SBAddress
38    GetEndAddress () const;
39
40    bool
41    IsValid () const;
42
43    lldb::SBFileSpec
44    GetFileSpec () const;
45
46    uint32_t
47    GetLine () const;
48
49    uint32_t
50    GetColumn () const;
51
52    void
53    SetFileSpec (lldb::SBFileSpec filespec);
54
55    void
56    SetLine (uint32_t line);
57
58    void
59    SetColumn (uint32_t column);
60
61#ifndef SWIG
62    bool
63    operator == (const lldb::SBLineEntry &rhs) const;
64
65    bool
66    operator != (const lldb::SBLineEntry &rhs) const;
67
68#endif
69
70    bool
71    GetDescription (lldb::SBStream &description);
72
73protected:
74
75    lldb_private::LineEntry *
76    get ();
77
78private:
79    friend class SBAddress;
80    friend class SBCompileUnit;
81    friend class SBFrame;
82    friend class SBSymbolContext;
83
84#ifndef SWIG
85
86    const lldb_private::LineEntry *
87    operator->() const;
88
89    lldb_private::LineEntry &
90    ref();
91
92    const lldb_private::LineEntry &
93    ref() const;
94
95#endif
96
97
98    SBLineEntry (const lldb_private::LineEntry *lldb_object_ptr);
99
100    void
101    SetLineEntry (const lldb_private::LineEntry &lldb_object_ref);
102
103    std::auto_ptr<lldb_private::LineEntry> m_opaque_ap;
104};
105
106
107} // namespace lldb
108
109#endif // LLDB_SBLineEntry_h_
110