9#ifndef LLDB_UTILITY_DATABUFFER_H
10#define LLDB_UTILITY_DATABUFFER_H
11#if defined(__cplusplus)
18#include "llvm/ADT/ArrayRef.h"
58 const uint8_t *GetBytes()
const {
return GetBytesImpl(); }
60 llvm::ArrayRef<uint8_t> GetData()
const {
61 return llvm::ArrayRef<uint8_t>(GetBytes(), GetByteSize());
67 virtual bool isA(
const void *ClassID)
const {
return ClassID == &
ID; }
68 static bool classof(
const DataBuffer *data_buffer) {
69 return data_buffer->isA(&
ID);
79 virtual const uint8_t *GetBytesImpl()
const = 0;
101 using DataBuffer::GetBytes;
102 using DataBuffer::GetData;
109 uint8_t *GetBytes() {
return const_cast<uint8_t *
>(GetBytesImpl()); }
111 llvm::MutableArrayRef<uint8_t> GetData() {
112 return llvm::MutableArrayRef<uint8_t>(GetBytes(), GetByteSize());
118 bool isA(
const void *ClassID)
const override {
119 return ClassID == &
ID || DataBuffer::isA(ClassID);
121 static bool classof(
const DataBuffer *data_buffer) {
122 return data_buffer->isA(&
ID);
130 : m_bytes(bytes), m_size(size) {}
132 const uint8_t *GetBytesImpl()
const override {
return m_bytes; }
138 bool isA(
const void *ClassID)
const override {
139 return ClassID == &
ID || WritableDataBuffer::isA(ClassID);
141 static bool classof(
const DataBuffer *data_buffer) {
142 return data_buffer->isA(&
ID);
A class that represents a running process on the host machine.