public override ClientFilterResult AfterReading(ClientFilterContext ctx) { _logger?.LogInformation($"TestPipeFilter AfterReading data={ctx.Memory.ToArray().ToHexString()}"); var newBuff = SmartBuffer.Rent(ctx.Memory.Length - 4); ctx.Memory.Slice(4).CopyTo(newBuff.Memory); newBuff.SignificantLength = ctx.Memory.Length - 4; return(new ClientFilterResult(ctx.Client, newBuff, true)); }
public override ClientFilterResult BeforeWriting(ClientFilterContext ctx) { _logger?.LogInformation($"TestPipeFilter BeforeWriting data={ctx.Memory.ToArray().ToHexString()}"); var newBuff = SmartBuffer.Rent(ctx.Memory.Length + 4); var p = newBuff.Memory.Span; p[0] = 0x12; p[1] = 0x34; p[4] = 0xAB; p[3] = 0xCD; ctx.Memory.CopyTo(newBuff.Memory.Slice(4)); newBuff.SignificantLength = ctx.Memory.Length + 4; return(new ClientFilterResult(ctx.Client, newBuff, true)); }
public abstract ClientFilterResult BeforeWriting(ClientFilterContext filterContext);
public abstract ClientFilterResult AfterReading(ClientFilterContext filterContext);