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    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
68protected:
69
70    lldb_private::LineEntry *
71    get ();
72
73private:
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