Source code for spinn_front_end_common.interface.buffer_management.storage_objects.end_buffering_state

from .channel_buffer_state import ChannelBufferState


[docs]class EndBufferingState(object): """ Stores the buffering state at the end of a simulation """ __slots__ = [ # a list of channel state, where each channel is stored in a # ChannelBufferState object "_list_channel_buffer_state", # the final state stuff "_buffering_out_fsm_state" ] def __init__( self, buffering_out_fsm_state, list_channel_buffer_state): """ :param buffering_out_fsm_state: Final sequence number received :param list_channel_buffer_state: a list of channel state, where each\ channel is stored in a ChannelBufferState object """ self._buffering_out_fsm_state = buffering_out_fsm_state self._list_channel_buffer_state = list_channel_buffer_state @property def buffering_out_fsm_state(self): return self._buffering_out_fsm_state
[docs] def channel_buffer_state(self, i): return self._list_channel_buffer_state[i]
[docs] def get_state_for_region(self, region_id): for state in self._list_channel_buffer_state: if state.region_id == region_id: return state return None
[docs] def get_missing_info_for_region(self, region_id): state = self.get_state_for_region(region_id) return None if state is None else state.missing_info
[docs] @staticmethod def size_of_region(n_regions_to_record): size_of_header = 8 + 4 * n_regions_to_record # add size needed for the data region addresses size_of_header += 4 * n_regions_to_record size_of_channel_state = ChannelBufferState.size_of_channel_state() return size_of_header + n_regions_to_record * size_of_channel_state