using SuperSocket.ProtoBase;
|
using System;
|
using System.Buffers;
|
using System.Collections.Generic;
|
using System.Text;
|
using System.Linq;
|
|
namespace IStation.Server
|
{
|
public class PipeLineFilter : TerminatorPipelineFilter<PackageInfo>
|
{
|
public PipeLineFilter() :base(null)
|
{ }
|
|
public PipeLineFilter(ReadOnlyMemory<byte> terminator) : base(terminator)
|
{
|
|
}
|
|
public override PackageInfo Filter(ref SequenceReader<byte> reader)
|
{
|
var sequeue = reader.Sequence;
|
var info = DecodePackage(ref sequeue);
|
reader.AdvanceToEnd();
|
return info;
|
}
|
|
protected override PackageInfo DecodePackage(ref ReadOnlySequence<byte> buffer)
|
{
|
var bts = buffer.ToArray();
|
return new PackageInfo(bts);
|
}
|
|
}
|
}
|