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 17 namespace lldb { 18 19 class SBLineEntry 20 { 21 public: 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 68 protected: 69 70 lldb_private::LineEntry * 71 get (); 72 73 private: 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