]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/include/lldb/DataFormatters/VectorIterator.h
MFV r329807:
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / include / lldb / DataFormatters / VectorIterator.h
1 //===-- VectorIterator.h ----------------------------------------------*- C++
2 //-*-===//
3 //
4 //                     The LLVM Compiler Infrastructure
5 //
6 // This file is distributed under the University of Illinois Open Source
7 // License. See LICENSE.TXT for details.
8 //
9 //===----------------------------------------------------------------------===//
10
11 #ifndef liblldb_VectorIterator_h_
12 #define liblldb_VectorIterator_h_
13
14 #include "lldb/lldb-forward.h"
15
16 #include "lldb/Target/ExecutionContext.h"
17 #include "lldb/Utility/ConstString.h"
18
19 namespace lldb_private {
20 namespace formatters {
21 class VectorIteratorSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
22 public:
23   VectorIteratorSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp,
24                                   ConstString item_name);
25
26   size_t CalculateNumChildren() override;
27
28   lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
29
30   bool Update() override;
31
32   bool MightHaveChildren() override;
33
34   size_t GetIndexOfChildWithName(const ConstString &name) override;
35
36 private:
37   ExecutionContextRef m_exe_ctx_ref;
38   ConstString m_item_name;
39   lldb::ValueObjectSP m_item_sp;
40 };
41
42 } // namespace formatters
43 } // namespace lldb_private
44
45 #endif // liblldb_CF_h_