//===-- DataExtractor.h -----------------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLDB_UTILITY_DATAEXTRACTOR_H #define LLDB_UTILITY_DATAEXTRACTOR_H #include "lldb/Utility/Endian.h" #include "lldb/lldb-defines.h" #include "lldb/lldb-enumerations.h" #include "lldb/lldb-forward.h" #include "lldb/lldb-types.h" #include "llvm/ADT/ArrayRef.h" #include "llvm/Support/DataExtractor.h" #include "llvm/Support/SwapByteOrder.h" #include <cassert> #include <cstdint> #include <cstring> namespace lldb_private { class Log; class Stream; } namespace llvm { template <typename T> class SmallVectorImpl; } namespace lldb_private { /// \class DataExtractor DataExtractor.h "lldb/Core/DataExtractor.h" An data /// extractor class. /// /// DataExtractor is a class that can extract data (swapping if needed) from a /// data buffer. The data buffer can be caller owned, or can be shared data /// that can be shared between multiple DataExtractor instances. Multiple /// DataExtractor objects can share the same data, yet extract values in /// different address sizes and byte order modes. Each object can have a /// unique position in the shared data and extract data from different /// offsets. /// /// \see DataBuffer class DataExtractor { … }; } // namespace lldb_private #endif // LLDB_UTILITY_DATAEXTRACTOR_H