1254721Semaste//===-- SBLineEntry.h -------------------------------------------*- C++ -*-===// 2254721Semaste// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6254721Semaste// 7254721Semaste//===----------------------------------------------------------------------===// 8254721Semaste 9254721Semaste#ifndef LLDB_SBLineEntry_h_ 10254721Semaste#define LLDB_SBLineEntry_h_ 11254721Semaste 12314564Sdim#include "lldb/API/SBAddress.h" 13254721Semaste#include "lldb/API/SBDefines.h" 14254721Semaste#include "lldb/API/SBFileSpec.h" 15254721Semaste 16254721Semastenamespace lldb { 17254721Semaste 18314564Sdimclass LLDB_API SBLineEntry { 19254721Semastepublic: 20314564Sdim SBLineEntry(); 21254721Semaste 22314564Sdim SBLineEntry(const lldb::SBLineEntry &rhs); 23254721Semaste 24314564Sdim ~SBLineEntry(); 25254721Semaste 26314564Sdim const lldb::SBLineEntry &operator=(const lldb::SBLineEntry &rhs); 27254721Semaste 28314564Sdim lldb::SBAddress GetStartAddress() const; 29254721Semaste 30314564Sdim lldb::SBAddress GetEndAddress() const; 31254721Semaste 32353358Sdim explicit operator bool() const; 33353358Sdim 34314564Sdim bool IsValid() const; 35254721Semaste 36314564Sdim lldb::SBFileSpec GetFileSpec() const; 37254721Semaste 38314564Sdim uint32_t GetLine() const; 39254721Semaste 40314564Sdim uint32_t GetColumn() const; 41254721Semaste 42314564Sdim void SetFileSpec(lldb::SBFileSpec filespec); 43254721Semaste 44314564Sdim void SetLine(uint32_t line); 45254721Semaste 46314564Sdim void SetColumn(uint32_t column); 47254721Semaste 48314564Sdim bool operator==(const lldb::SBLineEntry &rhs) const; 49254721Semaste 50314564Sdim bool operator!=(const lldb::SBLineEntry &rhs) const; 51254721Semaste 52314564Sdim bool GetDescription(lldb::SBStream &description); 53314564Sdim 54254721Semasteprotected: 55314564Sdim lldb_private::LineEntry *get(); 56254721Semaste 57254721Semasteprivate: 58314564Sdim friend class SBAddress; 59314564Sdim friend class SBCompileUnit; 60314564Sdim friend class SBFrame; 61314564Sdim friend class SBSymbolContext; 62254721Semaste 63314564Sdim const lldb_private::LineEntry *operator->() const; 64254721Semaste 65314564Sdim lldb_private::LineEntry &ref(); 66254721Semaste 67314564Sdim const lldb_private::LineEntry &ref() const; 68254721Semaste 69314564Sdim SBLineEntry(const lldb_private::LineEntry *lldb_object_ptr); 70254721Semaste 71314564Sdim void SetLineEntry(const lldb_private::LineEntry &lldb_object_ref); 72254721Semaste 73353358Sdim std::unique_ptr<lldb_private::LineEntry> m_opaque_up; 74254721Semaste}; 75254721Semaste 76254721Semaste} // namespace lldb 77254721Semaste 78254721Semaste#endif // LLDB_SBLineEntry_h_ 79