File indexing completed on 2026-05-10 08:42:57
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef LLDB_UTILITY_DATABUFFERLLVM_H
0010 #define LLDB_UTILITY_DATABUFFERLLVM_H
0011
0012 #include "lldb/Utility/DataBuffer.h"
0013 #include "lldb/lldb-types.h"
0014
0015 #include <cstdint>
0016 #include <memory>
0017
0018 namespace llvm {
0019 class WritableMemoryBuffer;
0020 class MemoryBuffer;
0021 class Twine;
0022 }
0023
0024 namespace lldb_private {
0025 class FileSystem;
0026
0027 class DataBufferLLVM : public DataBuffer {
0028 public:
0029 ~DataBufferLLVM() override;
0030
0031 const uint8_t *GetBytesImpl() const override;
0032 lldb::offset_t GetByteSize() const override;
0033
0034
0035
0036 static char ID;
0037 bool isA(const void *ClassID) const override {
0038 return ClassID == &ID || DataBuffer::isA(ClassID);
0039 }
0040 static bool classof(const DataBuffer *data_buffer) {
0041 return data_buffer->isA(&ID);
0042 }
0043
0044
0045
0046
0047 explicit DataBufferLLVM(std::unique_ptr<llvm::MemoryBuffer> Buffer);
0048
0049 protected:
0050 std::unique_ptr<llvm::MemoryBuffer> Buffer;
0051 };
0052
0053 class WritableDataBufferLLVM : public WritableDataBuffer {
0054 public:
0055 ~WritableDataBufferLLVM() override;
0056
0057 const uint8_t *GetBytesImpl() const override;
0058 lldb::offset_t GetByteSize() const override;
0059
0060
0061
0062 static char ID;
0063 bool isA(const void *ClassID) const override {
0064 return ClassID == &ID || WritableDataBuffer::isA(ClassID);
0065 }
0066 static bool classof(const DataBuffer *data_buffer) {
0067 return data_buffer->isA(&ID);
0068 }
0069
0070
0071
0072
0073 explicit WritableDataBufferLLVM(
0074 std::unique_ptr<llvm::WritableMemoryBuffer> Buffer);
0075
0076 protected:
0077 std::unique_ptr<llvm::WritableMemoryBuffer> Buffer;
0078 };
0079 }
0080
0081 #endif