using System; using System.Collections.Generic; using Domain; namespace Client; public class FrameAssembler { private readonly Action> _frameCallback; private readonly List _buffer = new List(); private const int FrameSize = 9; public FrameAssembler(Action> frameCallback) { _frameCallback = frameCallback ?? throw new ArgumentNullException(nameof(frameCallback)); } public void AddData(Data data) { _buffer.Add(data); if (_buffer.Count >= FrameSize) { _frameCallback(new List(_buffer)); _buffer.Clear(); } } }