1//===-- ValueObjectList.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 liblldb_ValueObjectList_h_ 11#define liblldb_ValueObjectList_h_ 12 13// C Includes 14// C++ Includes 15#include <vector> 16 17// Other libraries and framework includes 18// Project includes 19#include "lldb/lldb-private.h" 20#include "lldb/Core/ClangForward.h" 21#include "lldb/Core/UserID.h" 22#include "lldb/Target/ExecutionContextScope.h" 23 24namespace lldb_private { 25 26//---------------------------------------------------------------------- 27// A collection of ValueObject values that 28//---------------------------------------------------------------------- 29class ValueObjectList 30{ 31public: 32 //------------------------------------------------------------------ 33 // Constructors and Destructors 34 //------------------------------------------------------------------ 35 ValueObjectList (); 36 37 ValueObjectList (const ValueObjectList &rhs); 38 39 ~ValueObjectList(); 40 41 const ValueObjectList & 42 operator = (const ValueObjectList &rhs); 43 44 void 45 Append (const lldb::ValueObjectSP &val_obj_sp); 46 47 void 48 Append (const ValueObjectList &valobj_list); 49 50 lldb::ValueObjectSP 51 FindValueObjectByPointer (ValueObject *valobj); 52 53 size_t 54 GetSize () const; 55 56 void 57 Resize (size_t size); 58 59 lldb::ValueObjectSP 60 GetValueObjectAtIndex (size_t idx); 61 62 lldb::ValueObjectSP 63 RemoveValueObjectAtIndex (size_t idx); 64 65 void 66 SetValueObjectAtIndex (size_t idx, 67 const lldb::ValueObjectSP &valobj_sp); 68 69 lldb::ValueObjectSP 70 FindValueObjectByValueName (const char *name); 71 72 lldb::ValueObjectSP 73 FindValueObjectByUID (lldb::user_id_t uid); 74 75 void 76 Swap (ValueObjectList &value_object_list); 77 78protected: 79 typedef std::vector<lldb::ValueObjectSP> collection; 80 //------------------------------------------------------------------ 81 // Classes that inherit from ValueObjectList can see and modify these 82 //------------------------------------------------------------------ 83 collection m_value_objects; 84 85}; 86 87 88} // namespace lldb_private 89 90#endif // liblldb_ValueObjectList_h_ 91