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_ 78