149306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata//===-- SBDeclaration.h -------------------------------------------*- C++ -*-===// 249306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata// 349306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata// The LLVM Compiler Infrastructure 449306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata// 549306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata// This file is distributed under the University of Illinois Open Source 649306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata// License. See LICENSE.TXT for details. 749306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata// 849306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata//===----------------------------------------------------------------------===// 949306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 1049306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata#ifndef LLDB_SBDeclaration_h_ 1149306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata#define LLDB_SBDeclaration_h_ 1249306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 1349306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata#include "lldb/API/SBDefines.h" 1449306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata#include "lldb/API/SBFileSpec.h" 1549306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 1649306144bb37f0b3423d992f17cdcc24703374b4Enrico Granatanamespace lldb { 1749306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 1849306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata class SBDeclaration 1949306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata { 2049306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata public: 2149306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 2249306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata SBDeclaration (); 2349306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 2449306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata SBDeclaration (const lldb::SBDeclaration &rhs); 2549306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 2649306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata ~SBDeclaration (); 2749306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 2849306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata const lldb::SBDeclaration & 2949306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata operator = (const lldb::SBDeclaration &rhs); 3049306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 3149306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata bool 3249306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata IsValid () const; 3349306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 3449306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata lldb::SBFileSpec 3549306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata GetFileSpec () const; 3649306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 3749306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata uint32_t 3849306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata GetLine () const; 3949306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 4049306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata uint32_t 4149306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata GetColumn () const; 4249306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 4349306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata void 4449306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata SetFileSpec (lldb::SBFileSpec filespec); 4549306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 4649306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata void 4749306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata SetLine (uint32_t line); 4849306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 4949306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata void 5049306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata SetColumn (uint32_t column); 5149306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 5249306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata bool 5349306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata operator == (const lldb::SBDeclaration &rhs) const; 5449306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 5549306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata bool 5649306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata operator != (const lldb::SBDeclaration &rhs) const; 5749306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 5849306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata bool 5949306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata GetDescription (lldb::SBStream &description); 6049306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 6149306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata protected: 6249306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 6349306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata lldb_private::Declaration * 6449306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata get (); 6549306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 6649306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata private: 6749306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata friend class SBValue; 6849306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 6949306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata const lldb_private::Declaration * 7049306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata operator->() const; 7149306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 7249306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata lldb_private::Declaration & 7349306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata ref(); 7449306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 7549306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata const lldb_private::Declaration & 7649306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata ref() const; 7749306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 7849306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata SBDeclaration (const lldb_private::Declaration *lldb_object_ptr); 7949306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 8049306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata void 8149306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata SetDeclaration (const lldb_private::Declaration &lldb_object_ref); 8249306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 83102b2c2681c9a830afe25bfea35557421905e42cGreg Clayton std::unique_ptr<lldb_private::Declaration> m_opaque_ap; 8449306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata }; 8549306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 8649306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 8749306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata} // namespace lldb 8849306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata 8949306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata#endif // LLDB_SBDeclaration_h_ 90