1 //===-- SBDeclaration.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_SBDeclaration_h_ 11 #define LLDB_SBDeclaration_h_ 12 13 #include "lldb/API/SBDefines.h" 14 #include "lldb/API/SBFileSpec.h" 15 16 namespace lldb { 17 18 class SBDeclaration 19 { 20 public: 21 22 SBDeclaration (); 23 24 SBDeclaration (const lldb::SBDeclaration &rhs); 25 26 ~SBDeclaration (); 27 28 const lldb::SBDeclaration & 29 operator = (const lldb::SBDeclaration &rhs); 30 31 bool 32 IsValid () const; 33 34 lldb::SBFileSpec 35 GetFileSpec () const; 36 37 uint32_t 38 GetLine () const; 39 40 uint32_t 41 GetColumn () const; 42 43 void 44 SetFileSpec (lldb::SBFileSpec filespec); 45 46 void 47 SetLine (uint32_t line); 48 49 void 50 SetColumn (uint32_t column); 51 52 bool 53 operator == (const lldb::SBDeclaration &rhs) const; 54 55 bool 56 operator != (const lldb::SBDeclaration &rhs) const; 57 58 bool 59 GetDescription (lldb::SBStream &description); 60 61 protected: 62 63 lldb_private::Declaration * 64 get (); 65 66 private: 67 friend class SBValue; 68 69 const lldb_private::Declaration * 70 operator->() const; 71 72 lldb_private::Declaration & 73 ref(); 74 75 const lldb_private::Declaration & 76 ref() const; 77 78 SBDeclaration (const lldb_private::Declaration *lldb_object_ptr); 79 80 void 81 SetDeclaration (const lldb_private::Declaration &lldb_object_ref); 82 83 std::unique_ptr<lldb_private::Declaration> m_opaque_ap; 84 }; 85 86 87 } // namespace lldb 88 89 #endif // LLDB_SBDeclaration_h_ 90