Source code for spinn_front_end_common.interface.interface_functions.buffer_manager_creator
from spinn_utilities.progress_bar import ProgressBar
from spinn_front_end_common.interface.buffer_management import BufferManager
from spinn_front_end_common.interface.buffer_management.buffer_models \
import AbstractSendsBuffersFromHost, AbstractReceiveBuffersToHost
[docs]class BufferManagerCreator(object):
__slots__ = []
def __call__(self, placements, tags, txrx, store_data_in_file):
progress = ProgressBar(placements.placements, "Initialising buffers")
# Create the buffer manager
buffer_manager = BufferManager(
placements, tags, txrx, store_data_in_file)
for placement in progress.over(placements.placements):
if isinstance(placement.vertex, AbstractSendsBuffersFromHost):
if placement.vertex.buffering_input():
buffer_manager.add_sender_vertex(placement.vertex)
if isinstance(placement.vertex, AbstractReceiveBuffersToHost):
buffer_manager.add_receiving_vertex(placement.vertex)
return buffer_manager