Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:42:44

0001 //===-- AddressRangeListImpl.h ----------------------------------*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 
0009 #ifndef LLDB_CORE_ADDRESSRANGELISTIMPL_H
0010 #define LLDB_CORE_ADDRESSRANGELISTIMPL_H
0011 
0012 #include "lldb/Core/AddressRange.h"
0013 #include <cstddef>
0014 
0015 namespace lldb {
0016 class SBAddressRangeList;
0017 class SBBlock;
0018 class SBProcess;
0019 }
0020 
0021 namespace lldb_private {
0022 
0023 class AddressRangeListImpl {
0024 public:
0025   AddressRangeListImpl();
0026 
0027   explicit AddressRangeListImpl(AddressRanges ranges)
0028       : m_ranges(std::move(ranges)) {}
0029 
0030   size_t GetSize() const;
0031 
0032   void Reserve(size_t capacity);
0033 
0034   void Append(const AddressRange &sb_region);
0035 
0036   void Append(const AddressRangeListImpl &list);
0037 
0038   void Clear();
0039 
0040   lldb_private::AddressRange GetAddressRangeAtIndex(size_t index);
0041 
0042 private:
0043   friend class lldb::SBAddressRangeList;
0044   friend class lldb::SBBlock;
0045   friend class lldb::SBProcess;
0046 
0047   AddressRanges &ref();
0048 
0049   AddressRanges m_ranges;
0050 };
0051 
0052 } // namespace lldb_private
0053 
0054 #endif // LLDB_CORE_ADDRESSRANGE_H