private EmbeddedChannel BuildEmbeddedChannel(StackType inbound, StackType outbound, bool framingEnabled = true) { InternalLoggerFactory.DefaultFactory.AddProvider(new ConsoleLoggerProvider(new ConsoleLoggerOptionsMonitor( new ConsoleLoggerOptions { Format = ConsoleLoggerFormat.Default, LogToStandardErrorThreshold = LogLevel.Warning }))); ResourceLeakDetector.Level = ResourceLeakDetector.DetectionLevel.Paranoid; IChannelHandler decoder = inbound == StackType.Zero ? new ZeroFrameDecoder(_frameCipherB, _macProcessorB, LimboLogs.Instance) : throw new NotSupportedException(); IChannelHandler merger = inbound == StackType.Zero ? new ZeroFrameMerger(LimboLogs.Instance) : throw new NotSupportedException(); IChannelHandler encoder = outbound == StackType.Zero ? new ZeroFrameEncoder(_frameCipherA, _macProcessorA, LimboLogs.Instance) : throw new NotSupportedException(); IFramingAware splitter = outbound == StackType.Zero ? new ZeroPacketSplitter(LimboLogs.Instance) : throw new NotSupportedException(); Assert.AreEqual(Frame.DefaultMaxFrameSize, splitter.MaxFrameSize, "default max frame size"); if (!framingEnabled) { splitter.DisableFraming(); Assert.AreEqual(int.MaxValue, splitter.MaxFrameSize, "max frame size when framing disabled"); } EmbeddedChannel embeddedChannel = new EmbeddedChannel(); embeddedChannel.Pipeline.AddLast(decoder); embeddedChannel.Pipeline.AddLast(merger); embeddedChannel.Pipeline.AddLast(encoder); embeddedChannel.Pipeline.AddLast(splitter); return(embeddedChannel); }
private EmbeddedChannel BuildEmbeddedChannel(StackType inbound, StackType outbound, bool framingEnabled = true) { InternalLoggerFactory.DefaultFactory.AddProvider(new ConsoleLoggerProvider((s, level) => level > Microsoft.Extensions.Logging.LogLevel.Warning, false)); ResourceLeakDetector.Level = ResourceLeakDetector.DetectionLevel.Paranoid; IChannelHandler decoder = inbound == StackType.Zero ? new ZeroFrameDecoder(_frameCipherB, _macProcessorB, LimboLogs.Instance) : (IChannelHandler) new NettyFrameDecoder(_frameCipherB, _macProcessorB, LimboLogs.Instance); IChannelHandler merger = inbound == StackType.Zero ? new ZeroFrameMerger(LimboLogs.Instance) : (IChannelHandler) new NettyFrameMerger(LimboLogs.Instance); IChannelHandler encoder = outbound == StackType.Zero ? new ZeroFrameEncoder(_frameCipherA, _macProcessorA, LimboLogs.Instance) : (IChannelHandler) new NettyFrameEncoder(_frameCipherA, _macProcessorA, LimboLogs.Instance); IFramingAware splitter = outbound == StackType.Zero ? new ZeroPacketSplitter(LimboLogs.Instance) : (IFramingAware) new NettyPacketSplitter(LimboLogs.Instance); Assert.AreEqual(Frame.DefaultMaxFrameSize, splitter.MaxFrameSize, "default max frame size"); if (!framingEnabled) { splitter.DisableFraming(); Assert.AreEqual(int.MaxValue, splitter.MaxFrameSize, "max frame size when framing disabled"); } EmbeddedChannel embeddedChannel = new EmbeddedChannel(); embeddedChannel.Pipeline.AddLast(decoder); embeddedChannel.Pipeline.AddLast(merger); embeddedChannel.Pipeline.AddLast(encoder); embeddedChannel.Pipeline.AddLast(splitter); return(embeddedChannel); }