10 #ifndef LLVM_DEBUGINFO_MSF_BYTESTREAM_H
11 #define LLVM_DEBUGINFO_MSF_BYTESTREAM_H
33 : Data(Data.bytes_begin(), Data.bytes_end()) {}
58 const char *CharData =
reinterpret_cast<const char *
>(
Data.
data());
72 Buffer->getBuffer().bytes_end())),
82 : Data(Data), ImmutableStream(Data) {}
86 return ImmutableStream.
readBytes(Offset, Size, Buffer);
102 if (Offset > Buffer.
size() - Data.
size())
105 uint8_t *DataPtr =
const_cast<uint8_t *
>(Data.
data());
106 ::memcpy(DataPtr + Offset, Buffer.
data(), Buffer.
size());
125 StreamImpl(std::unique_ptr<FileOutputBuffer> Buffer)
127 Buffer->getBufferEnd())),
128 FileBuffer(std::move(Buffer)) {}
131 if (FileBuffer->commit())
137 std::unique_ptr<FileOutputBuffer> FileBuffer;
142 : Impl(std::move(Buffer)) {}
146 return Impl.readBytes(Offset, Size, Buffer);
151 return Impl.readLongestContiguousChunk(Offset, Buffer);
157 return Impl.writeBytes(Offset, Data);
169 #endif // LLVM_DEBUGINFO_MSF_BYTESTREAM_H
Error commit() const override
Error readBytes(uint32_t Offset, uint32_t Size, ArrayRef< uint8_t > &Buffer) const override
Error readLongestContiguousChunk(uint32_t Offset, ArrayRef< uint8_t > &Buffer) const override
ArrayRef< uint8_t > data() const
MemoryBufferByteStream(std::unique_ptr< MemoryBuffer > Buffer)
ArrayRef< T > slice(size_t N, size_t M) const
slice(n, m) - Chop off the first N elements of the array, and keep M elements in the array...
uint32_t getLength() const override
ByteStream(ArrayRef< uint8_t > Data)
uint32_t getLength() const override
MutableByteStream()=default
size_t size() const
size - Get the array size.
ByteStream(StringRef Data)
Error writeBytes(uint32_t Offset, ArrayRef< uint8_t > Buffer) const override
MutableArrayRef< uint8_t > data() const
bool empty() const
empty - Check if the array is empty.
Error commit() const override
MutableByteStream(MutableArrayRef< uint8_t > Data)
Error readLongestContiguousChunk(uint32_t Offset, ArrayRef< uint8_t > &Buffer) const override
static ErrorSuccess success()
Create a success value.
Error readLongestContiguousChunk(uint32_t Offset, ArrayRef< uint8_t > &Buffer) const override
uint32_t getLength() const override
Error readBytes(uint32_t Offset, uint32_t Size, ArrayRef< uint8_t > &Buffer) const override
FileBufferByteStream(std::unique_ptr< FileOutputBuffer > Buffer)
std::unique_ptr< MemoryBuffer > MemBuffer
Lightweight error class with error context and mandatory checking.
Error writeBytes(uint32_t Offset, ArrayRef< uint8_t > Data) const override
StringRef - Represent a constant reference to a string, i.e.
Error readBytes(uint32_t Offset, uint32_t Size, ArrayRef< uint8_t > &Buffer) const override