diff options
Diffstat (limited to 'include/lldb/Core/ValueObjectList.h')
-rw-r--r-- | include/lldb/Core/ValueObjectList.h | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/include/lldb/Core/ValueObjectList.h b/include/lldb/Core/ValueObjectList.h new file mode 100644 index 000000000000..5bfe40b2e952 --- /dev/null +++ b/include/lldb/Core/ValueObjectList.h @@ -0,0 +1,90 @@ +//===-- ValueObjectList.h ---------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef liblldb_ValueObjectList_h_ +#define liblldb_ValueObjectList_h_ + +// C Includes +// C++ Includes +#include <vector> + +// Other libraries and framework includes +// Project includes +#include "lldb/lldb-private.h" +#include "lldb/Core/ClangForward.h" +#include "lldb/Core/UserID.h" +#include "lldb/Target/ExecutionContextScope.h" + +namespace lldb_private { + +//---------------------------------------------------------------------- +// A collection of ValueObject values that +//---------------------------------------------------------------------- +class ValueObjectList +{ +public: + //------------------------------------------------------------------ + // Constructors and Destructors + //------------------------------------------------------------------ + ValueObjectList (); + + ValueObjectList (const ValueObjectList &rhs); + + ~ValueObjectList(); + + const ValueObjectList & + operator = (const ValueObjectList &rhs); + + void + Append (const lldb::ValueObjectSP &val_obj_sp); + + void + Append (const ValueObjectList &valobj_list); + + lldb::ValueObjectSP + FindValueObjectByPointer (ValueObject *valobj); + + size_t + GetSize () const; + + void + Resize (size_t size); + + lldb::ValueObjectSP + GetValueObjectAtIndex (size_t idx); + + lldb::ValueObjectSP + RemoveValueObjectAtIndex (size_t idx); + + void + SetValueObjectAtIndex (size_t idx, + const lldb::ValueObjectSP &valobj_sp); + + lldb::ValueObjectSP + FindValueObjectByValueName (const char *name); + + lldb::ValueObjectSP + FindValueObjectByUID (lldb::user_id_t uid); + + void + Swap (ValueObjectList &value_object_list); + +protected: + typedef std::vector<lldb::ValueObjectSP> collection; + //------------------------------------------------------------------ + // Classes that inherit from ValueObjectList can see and modify these + //------------------------------------------------------------------ + collection m_value_objects; + +}; + + +} // namespace lldb_private + +#endif // liblldb_ValueObjectList_h_ |