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