protected override void Decode(IChannelHandlerContext context, IByteBuffer input, List <object> output) { byte[] buffer = new byte[input.Capacity + 2]; try { input.ReadBytes(buffer, 1, input.Capacity); buffer[0] = JT808Package.BeginFlag; buffer[input.Capacity + 1] = JT808Package.EndFlag; JT808Package jT808Package = JT808Serializer.Deserialize <JT808Package>(buffer); MsgSuccessCounter.Increment(); output.Add(jT808Package); if (logger.IsEnabled(LogLevel.Debug)) { logger.LogDebug("accept package success count<<<" + MsgSuccessCounter.Count.ToString()); } } catch (JT808.Protocol.Exceptions.JT808Exception ex) { MsgFailCounter.Increment(); if (logger.IsEnabled(LogLevel.Error)) { logger.LogError("accept package fail count<<<" + MsgFailCounter.Count.ToString()); logger.LogError(ex, "accept msg<<<" + buffer); } } catch (Exception ex) { MsgFailCounter.Increment(); if (logger.IsEnabled(LogLevel.Error)) { logger.LogError("accept package fail count<<<" + MsgFailCounter.Count.ToString()); logger.LogError(ex, "accept msg<<<" + buffer); } } }
public void Test1() { JT808AtomicCounter jT808AtomicCounter = new JT808AtomicCounter(); JT808AtomicCounter jT808AtomicCounter1 = new JT808AtomicCounter(); Parallel.For(0, 1000, (i) => { jT808AtomicCounter.Increment(); }); Assert.Equal(1000, jT808AtomicCounter.Count); Parallel.For(0, 1000, (i) => { jT808AtomicCounter1.Increment(); }); Assert.Equal(1000, jT808AtomicCounter1.Count); }
public long MsgSuccessIncrement() { return(MsgSuccessCounter.Increment()); }
public long MsgFailIncrement() { return(MsgFailCounter.Increment()); }