private IEnumerable <(string, BufferSlice)> EnumerateAllBufferSlices() { foreach (var pair in bufferPools) { var routingKey = pair.Key; var bufferPool = pair.Value; var maximumSliceLength = messageBuffer.Length - RequestMessageBuilder.CommonHeaderSize - RequestMessageBuilder.EstimateEventGroupHeaderSize(routingKey); var snapshot = bufferPool.GetSnapshot(); if (snapshot == null) { continue; } foreach (var buffer in snapshot) { foreach (var slice in bufferSliceFactory.Cut(buffer, maximumSliceLength)) { yield return(routingKey, slice); } } } }
public void Reset() { CurrentSlices = new List <BufferSlice>(); CurrentMessageBuilder = new RequestMessageBuilder(messageBuffer); }