]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/include/lldb/API/SBLineEntry.h
MFV r323535: 8585 improve batching done in zil_commit()
[FreeBSD/FreeBSD.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/SBAddress.h"
14 #include "lldb/API/SBDefines.h"
15 #include "lldb/API/SBFileSpec.h"
16
17 namespace lldb {
18
19 class LLDB_API SBLineEntry {
20 public:
21   SBLineEntry();
22
23   SBLineEntry(const lldb::SBLineEntry &rhs);
24
25   ~SBLineEntry();
26
27   const lldb::SBLineEntry &operator=(const lldb::SBLineEntry &rhs);
28
29   lldb::SBAddress GetStartAddress() const;
30
31   lldb::SBAddress GetEndAddress() const;
32
33   bool IsValid() const;
34
35   lldb::SBFileSpec GetFileSpec() const;
36
37   uint32_t GetLine() const;
38
39   uint32_t GetColumn() const;
40
41   void SetFileSpec(lldb::SBFileSpec filespec);
42
43   void SetLine(uint32_t line);
44
45   void SetColumn(uint32_t column);
46
47   bool operator==(const lldb::SBLineEntry &rhs) const;
48
49   bool operator!=(const lldb::SBLineEntry &rhs) const;
50
51   bool GetDescription(lldb::SBStream &description);
52
53 protected:
54   lldb_private::LineEntry *get();
55
56 private:
57   friend class SBAddress;
58   friend class SBCompileUnit;
59   friend class SBFrame;
60   friend class SBSymbolContext;
61
62   const lldb_private::LineEntry *operator->() const;
63
64   lldb_private::LineEntry &ref();
65
66   const lldb_private::LineEntry &ref() const;
67
68   SBLineEntry(const lldb_private::LineEntry *lldb_object_ptr);
69
70   void SetLineEntry(const lldb_private::LineEntry &lldb_object_ref);
71
72   std::unique_ptr<lldb_private::LineEntry> m_opaque_ap;
73 };
74
75 } // namespace lldb
76
77 #endif // LLDB_SBLineEntry_h_