VariableList.h revision 254721
1254721Semaste//===-- VariableList.h ------------------------------------------*- C++ -*-===// 2254721Semaste// 3254721Semaste// The LLVM Compiler Infrastructure 4254721Semaste// 5254721Semaste// This file is distributed under the University of Illinois Open Source 6254721Semaste// License. See LICENSE.TXT for details. 7254721Semaste// 8254721Semaste//===----------------------------------------------------------------------===// 9254721Semaste 10254721Semaste#ifndef liblldb_VariableList_h_ 11254721Semaste#define liblldb_VariableList_h_ 12254721Semaste 13254721Semaste#include "lldb/lldb-private.h" 14254721Semaste#include "lldb/Symbol/SymbolContext.h" 15254721Semaste#include "lldb/Symbol/Variable.h" 16254721Semaste 17254721Semastenamespace lldb_private { 18254721Semaste 19254721Semasteclass VariableList 20254721Semaste{ 21254721Semastepublic: 22254721Semaste //------------------------------------------------------------------ 23254721Semaste // Constructors and Destructors 24254721Semaste //------------------------------------------------------------------ 25254721Semaste// VariableList(const SymbolContext &symbol_context); 26254721Semaste VariableList(); 27254721Semaste virtual ~VariableList(); 28254721Semaste 29254721Semaste void 30254721Semaste AddVariable (const lldb::VariableSP &var_sp); 31254721Semaste 32254721Semaste bool 33254721Semaste AddVariableIfUnique (const lldb::VariableSP &var_sp); 34254721Semaste 35254721Semaste void 36254721Semaste AddVariables (VariableList *variable_list); 37254721Semaste 38254721Semaste void 39254721Semaste Clear(); 40254721Semaste 41254721Semaste void 42254721Semaste Dump(Stream *s, bool show_context) const; 43254721Semaste 44254721Semaste lldb::VariableSP 45254721Semaste GetVariableAtIndex(size_t idx) const; 46254721Semaste 47254721Semaste lldb::VariableSP 48254721Semaste RemoveVariableAtIndex (size_t idx); 49254721Semaste 50254721Semaste lldb::VariableSP 51254721Semaste FindVariable (const ConstString& name); 52254721Semaste 53254721Semaste uint32_t 54254721Semaste FindVariableIndex (const lldb::VariableSP &var_sp); 55254721Semaste 56254721Semaste // Returns the actual number of unique variables that were added to the 57254721Semaste // list. "total_matches" will get updated with the actualy number of 58254721Semaste // matches that were found regardless of whether they were unique or not 59254721Semaste // to allow for error conditions when nothing is found, versus conditions 60254721Semaste // where any varaibles that match "regex" were already in "var_list". 61254721Semaste size_t 62254721Semaste AppendVariablesIfUnique (const RegularExpression& regex, 63254721Semaste VariableList &var_list, 64254721Semaste size_t& total_matches); 65254721Semaste 66254721Semaste size_t 67254721Semaste AppendVariablesWithScope (lldb::ValueType type, 68254721Semaste VariableList &var_list, 69254721Semaste bool if_unique = true); 70254721Semaste 71254721Semaste uint32_t 72254721Semaste FindIndexForVariable (Variable* variable); 73254721Semaste 74254721Semaste size_t 75254721Semaste MemorySize() const; 76254721Semaste 77254721Semaste size_t 78254721Semaste GetSize() const; 79254721Semaste 80254721Semasteprotected: 81254721Semaste typedef std::vector<lldb::VariableSP> collection; 82254721Semaste typedef collection::iterator iterator; 83254721Semaste typedef collection::const_iterator const_iterator; 84254721Semaste 85254721Semaste collection m_variables; 86254721Semasteprivate: 87254721Semaste //------------------------------------------------------------------ 88254721Semaste // For VariableList only 89254721Semaste //------------------------------------------------------------------ 90254721Semaste DISALLOW_COPY_AND_ASSIGN (VariableList); 91254721Semaste}; 92254721Semaste 93254721Semaste} // namespace lldb_private 94254721Semaste 95254721Semaste#endif // liblldb_VariableList_h_ 96