1 //===-- SBLineEntry.h -------------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef LLDB_SBLineEntry_h_
11 #define LLDB_SBLineEntry_h_
13 #include "lldb/API/SBAddress.h"
14 #include "lldb/API/SBDefines.h"
15 #include "lldb/API/SBFileSpec.h"
19 class LLDB_API SBLineEntry {
23 SBLineEntry(const lldb::SBLineEntry &rhs);
27 const lldb::SBLineEntry &operator=(const lldb::SBLineEntry &rhs);
29 lldb::SBAddress GetStartAddress() const;
31 lldb::SBAddress GetEndAddress() const;
35 lldb::SBFileSpec GetFileSpec() const;
37 uint32_t GetLine() const;
39 uint32_t GetColumn() const;
41 void SetFileSpec(lldb::SBFileSpec filespec);
43 void SetLine(uint32_t line);
45 void SetColumn(uint32_t column);
47 bool operator==(const lldb::SBLineEntry &rhs) const;
49 bool operator!=(const lldb::SBLineEntry &rhs) const;
51 bool GetDescription(lldb::SBStream &description);
54 lldb_private::LineEntry *get();
57 friend class SBAddress;
58 friend class SBCompileUnit;
60 friend class SBSymbolContext;
62 const lldb_private::LineEntry *operator->() const;
64 lldb_private::LineEntry &ref();
66 const lldb_private::LineEntry &ref() const;
68 SBLineEntry(const lldb_private::LineEntry *lldb_object_ptr);
70 void SetLineEntry(const lldb_private::LineEntry &lldb_object_ref);
72 std::unique_ptr<lldb_private::LineEntry> m_opaque_ap;
77 #endif // LLDB_SBLineEntry_h_