maat::MemConcreteBuffer class

This class represents a concrete memory area. It's basically a wrapper around a buffer that enables to read/write constants of different sizes

For performance reasons, no checks are performed on the read/write operations to make sure that they don't overflow the bounds of the buffer. It is up to the caller to verify that the arguments passed are consistent.

❱   Base classes

class Serializable
Virtual interface that serializable classes must implement.

❱   Constructors, destructors, conversion operators

MemConcreteBuffer()
Constructor.

MemConcreteBuffer(offset_t nb_bytes)
Constructor.

~MemConcreteBuffer() virtual
Destructor.

❱   Public functions

void extend_after(offset_t nb_bytes)

void extend_before(offset_t nb_bytes)

void write(offset_t off, int64_t val, int nb_bytes)
Write the value 'val' on 'nb_bytes' starting from offset 'off'.

void write(offset_t off, const Number& val, int nb_bytes)
Write the value 'val' on 'nb_bytes' starting from offset 'off'.

auto is_identical_until(offset_t start, offset_t end, uint8_t val) -> offset_t
Returns the closest offset from 'start' and before 'end' (included) which holds a value different from 'val'.

auto raw_mem_at(offset_t off) -> uint8_t*
Returns a raw pointer to the concrete memory buffer at offset 'off'.

auto class_uid() const -> uid_t virtual
Return the class uid (see ClassId enum)

void dump(serial::Serializer&) const virtual
Dump the object contents in a serializer stream.

void load(serial::Deserializer&) virtual
Restore an object from a deserializer stream.

❱   Function documentation

void maat::MemConcreteBuffer::extend_after(offset_t nb_bytes)

Extend the buffer to make it represent 'nb_bytes' more bytes of memory. The new bytes are inserted at the end of the buffer

void maat::MemConcreteBuffer::extend_before(offset_t nb_bytes)

Extend the buffer to make it represent 'nb_bytes' more bytes of memory. The new bytes are inserted at the beginning of the buffer