ValueObjectVariable.h revision 36da2aa6dc5ad9994b638ed09eb81c44cc05540b
18a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com//===-- ValueObjectVariable.h -----------------------------------*- C++ -*-===// 28a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// 38a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// The LLVM Compiler Infrastructure 48a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// 58a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// This file is distributed under the University of Illinois Open Source 68a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// License. See LICENSE.TXT for details. 78a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// 88a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com//===----------------------------------------------------------------------===// 98a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 108a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#ifndef liblldb_ValueObjectVariable_h_ 118a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#define liblldb_ValueObjectVariable_h_ 128a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 138a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// C Includes 148a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// C++ Includes 158a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// Other libraries and framework includes 168a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// Project includes 178a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "lldb/Core/ValueObject.h" 188a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 198a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comnamespace lldb_private { 208a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 218a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com//---------------------------------------------------------------------- 228a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// A ValueObject that contains a root variable that may or may not 238a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// have children. 248a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com//---------------------------------------------------------------------- 258a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass ValueObjectVariable : public ValueObject 268a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com{ 278a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.compublic: 288a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com static lldb::ValueObjectSP 296f8f292aa768869a9e85c314b124875f57504f2creed@google.com Create (ExecutionContextScope *exe_scope, const lldb::VariableSP &var_sp); 30ac753098e8af4a17e5df97b3a4dd0ce123f8d70creed@android.com 31ac753098e8af4a17e5df97b3a4dd0ce123f8d70creed@android.com virtual 32ac753098e8af4a17e5df97b3a4dd0ce123f8d70creed@android.com ~ValueObjectVariable(); 33ac753098e8af4a17e5df97b3a4dd0ce123f8d70creed@android.com 34ac753098e8af4a17e5df97b3a4dd0ce123f8d70creed@android.com virtual size_t 358a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com GetByteSize(); 366f8f292aa768869a9e85c314b124875f57504f2creed@google.com 376f8f292aa768869a9e85c314b124875f57504f2creed@google.com virtual ConstString 386f8f292aa768869a9e85c314b124875f57504f2creed@google.com GetTypeName(); 396f8f292aa768869a9e85c314b124875f57504f2creed@google.com 406f8f292aa768869a9e85c314b124875f57504f2creed@google.com virtual ConstString 416f8f292aa768869a9e85c314b124875f57504f2creed@google.com GetQualifiedTypeName(); 426f8f292aa768869a9e85c314b124875f57504f2creed@google.com 436f8f292aa768869a9e85c314b124875f57504f2creed@google.com virtual size_t 446f8f292aa768869a9e85c314b124875f57504f2creed@google.com CalculateNumChildren(); 456f8f292aa768869a9e85c314b124875f57504f2creed@google.com 466f8f292aa768869a9e85c314b124875f57504f2creed@google.com virtual lldb::ValueType 476f8f292aa768869a9e85c314b124875f57504f2creed@google.com GetValueType() const; 486f8f292aa768869a9e85c314b124875f57504f2creed@google.com 496f8f292aa768869a9e85c314b124875f57504f2creed@google.com virtual bool 506f8f292aa768869a9e85c314b124875f57504f2creed@google.com IsInScope (); 518a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 528a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual lldb::ModuleSP 538a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com GetModule(); 548a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 558a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual SymbolContextScope * 568a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com GetSymbolContextScope(); 578a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 588a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual bool 598a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com GetDeclaration (Declaration &decl); 608a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 618a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprotected: 628a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual bool 638a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com UpdateValue (); 648a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 658a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual clang::ASTContext * 668a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com GetClangASTImpl (); 678a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 688a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual lldb::clang_type_t 698a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com GetClangTypeImpl (); 708a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 718a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com lldb::VariableSP m_variable_sp; ///< The variable that this value object is based upon 728a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 736f8f292aa768869a9e85c314b124875f57504f2creed@google.comprivate: 748a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com ValueObjectVariable (ExecutionContextScope *exe_scope, const lldb::VariableSP &var_sp); 758a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com //------------------------------------------------------------------ 768a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com // For ValueObject only 776f8f292aa768869a9e85c314b124875f57504f2creed@google.com //------------------------------------------------------------------ 788a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com DISALLOW_COPY_AND_ASSIGN (ValueObjectVariable); 798a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 808a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 818a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} // namespace lldb_private 828a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 838a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif // liblldb_ValueObjectVariable_h_ 848a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com