]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/include/lldb/API/SBMemoryRegionInfoList.h
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / include / lldb / API / SBMemoryRegionInfoList.h
1 //===-- SBMemoryRegionInfoList.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 LLDB_SBMemoryRegionInfoList_h_
11 #define LLDB_SBMemoryRegionInfoList_h_
12
13 #include "lldb/API/SBDefines.h"
14
15 class MemoryRegionInfoListImpl;
16
17 namespace lldb {
18
19 class LLDB_API SBMemoryRegionInfoList {
20 public:
21   SBMemoryRegionInfoList();
22
23   SBMemoryRegionInfoList(const lldb::SBMemoryRegionInfoList &rhs);
24
25   const SBMemoryRegionInfoList &operator=(const SBMemoryRegionInfoList &rhs);
26
27   ~SBMemoryRegionInfoList();
28
29   uint32_t GetSize() const;
30
31   bool GetMemoryRegionAtIndex(uint32_t idx, SBMemoryRegionInfo &region_info);
32
33   void Append(lldb::SBMemoryRegionInfo &region);
34
35   void Append(lldb::SBMemoryRegionInfoList &region_list);
36
37   void Clear();
38
39 protected:
40   const MemoryRegionInfoListImpl *operator->() const;
41
42   const MemoryRegionInfoListImpl &operator*() const;
43
44 private:
45   friend class SBProcess;
46
47   lldb_private::MemoryRegionInfos &ref();
48
49   const lldb_private::MemoryRegionInfos &ref() const;
50
51   std::unique_ptr<MemoryRegionInfoListImpl> m_opaque_ap;
52 };
53
54 } // namespace lldb
55
56 #endif // LLDB_SBMemoryRegionInfoList_h_