SBLineEntry.h revision 5f81547fd786584b10999c087528b323b5945896
1bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant//===-- SBLineEntry.h -------------------------------------------*- C++ -*-===// 2bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// 3f5256e16dfc425c1d466f6308d4026d529ce9e0bHoward Hinnant// The LLVM Compiler Infrastructure 4bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// 5bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// This file is distributed under the University of Illinois Open Source 6bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// License. See LICENSE.TXT for details. 7bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// 8bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant//===----------------------------------------------------------------------===// 9bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 10bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifndef LLDB_SBLineEntry_h_ 11bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#define LLDB_SBLineEntry_h_ 12bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 13bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include "lldb/API/SBDefines.h" 14bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include "lldb/API/SBAddress.h" 15bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include "lldb/API/SBFileSpec.h" 16bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 17bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantnamespace lldb { 18bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 19bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantclass SBLineEntry 20bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant{ 21bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantpublic: 22bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 23bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant SBLineEntry (); 24bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 25bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant SBLineEntry (const lldb::SBLineEntry &rhs); 26bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 27bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ~SBLineEntry (); 28bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 29bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifndef SWIG 30bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const lldb::SBLineEntry & 31bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant operator = (const lldb::SBLineEntry &rhs); 32bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif 33bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 34bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant lldb::SBAddress 35bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant GetStartAddress () const; 36bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 37bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant lldb::SBAddress 38bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant GetEndAddress () const; 39bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 40bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant bool 41bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant IsValid () const; 42bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 43bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant lldb::SBFileSpec 44bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant GetFileSpec () const; 45bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 46bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant uint32_t 47bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant GetLine () const; 48bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 49bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant uint32_t 50bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant GetColumn () const; 51bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 52bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifndef SWIG 53bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant bool 54bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant operator == (const lldb::SBLineEntry &rhs) const; 55bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 56bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant bool 57bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant operator != (const lldb::SBLineEntry &rhs) const; 58bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 59bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif 60bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 61bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantprivate: 62bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant friend class SBCompileUnit; 63bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant friend class SBFrame; 64bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant friend class SBSymbolContext; 65bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 66bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifndef SWIG 67bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 68bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const lldb_private::LineEntry * 69bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant operator->() const; 70bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 71bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const lldb_private::LineEntry & 72bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant operator*() const; 73bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 74bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif 75bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 76bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 77bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant SBLineEntry (const lldb_private::LineEntry *lldb_object_ptr); 78bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 79bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant void 80bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant SetLineEntry (const lldb_private::LineEntry &lldb_object_ref); 81bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 82bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant std::auto_ptr<lldb_private::LineEntry> m_lldb_object_ap; 83bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant}; 84bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 85bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 86bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant} // namespace lldb 87bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 88bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif // LLDB_SBLineEntry_h_ 89bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant