Source code for spinnman.data.little_endian_byte_array_byte_writer
from spinnman.data.abstract_byte_writer import AbstractByteWriter
[docs]class LittleEndianByteArrayByteWriter(AbstractByteWriter):
""" A byte writer that writes to a byte array using little endian notation
"""
def __init__(self):
"""
"""
self._data = bytearray()
[docs] def write_byte(self, byte_value):
""" See :py:meth:`spinnman.data.abstract_byte_writer.AbstractByteWriter.write_byte`
"""
self._data.append(byte_value & 0xFF)
[docs] def write_bytes(self, byte_iterable):
""" See :py:meth:`spinnman.data.abstract_byte_writer.AbstractByteWriter.write_bytes`
"""
self._data.extend(byte_iterable)
[docs] def write_short(self, short_value):
""" See :py:meth:`spinnman.data.abstract_byte_writer.AbstractByteWriter.write_short`
"""
self._data.append(short_value & 0xFF)
self._data.append((short_value >> 8) & 0xFF)
[docs] def write_int(self, int_value):
""" See :py:meth:`spinnman.data.abstract_byte_writer.AbstractByteWriter.write_int`
"""
self._data.append(int_value & 0xFF)
self._data.append((int_value >> 8) & 0xFF)
self._data.append((int_value >> 16) & 0xFF)
self._data.append((int_value >> 24) & 0xFF)
[docs] def write_long(self, long_value):
""" See :py:meth:`spinnman.data.abstract_byte_writer.AbstractByteWriter.write_long`
"""
self._data.append(long_value & 0xFF)
self._data.append((long_value >> 8) & 0xFF)
self._data.append((long_value >> 16) & 0xFF)
self._data.append((long_value >> 24) & 0xFF)
self._data.append((long_value >> 32) & 0xFF)
self._data.append((long_value >> 40) & 0xFF)
self._data.append((long_value >> 48) & 0xFF)
self._data.append((long_value >> 56) & 0xFF)
[docs] def get_n_bytes_written(self):
""" See :py:meth:`spinnman.data.abstract_byte_writer.AbstractByteWriter.get_n_bytes_written`
"""
return len(self._data)
@property
def data(self):
""" The data that was written
:rtype: bytearray
"""
return self._data