Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }