9#ifndef LLDB_UTILITY_DATAENCODER_H
10#define LLDB_UTILITY_DATAENCODER_H
12#if defined(__cplusplus)
19#include "llvm/ADT/ArrayRef.h"
20#include "llvm/ADT/StringRef.h"
72 DataEncoder(
const void *data,
uint32_t data_length,
139 void AppendU8(uint8_t value);
142 void AppendU64(uint64_t value);
159 void AppendData(llvm::StringRef data);
167 void AppendData(llvm::ArrayRef<uint8_t> data);
177 void AppendCString(llvm::StringRef data);
241 std::shared_ptr<lldb_private::DataBufferHeap> GetDataBuffer() {
252 llvm::ArrayRef<uint8_t> GetData()
const;
258 size_t GetByteSize()
const;
263 uint8_t GetAddressByteSize()
const {
return m_addr_size; }
267 const uint32_t size = GetByteSize();
269 return size - offset;
279 return length <= BytesLeft(offset);
287 bool ValidOffset(
uint32_t offset)
const {
return offset < GetByteSize(); }
290 std::shared_ptr<lldb_private::DataBufferHeap> m_data_sp;
296 const uint8_t m_addr_size;
298 DataEncoder(
const DataEncoder &) =
delete;
299 const DataEncoder &operator=(
const DataEncoder &) =
delete;
A class that represents a running process on the host machine.
ByteOrder
Byte ordering definitions.