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));
        }
示例#3
0
 public abstract ClientFilterResult BeforeWriting(ClientFilterContext filterContext);
示例#4
0
 public abstract ClientFilterResult AfterReading(ClientFilterContext filterContext);