Files
Max Gortman 4f28a55b48 Move to .NET Core tooling (#170)
Motivation
.NET Core tooling allows building for both .NET Framework and .NET Standard while easing pains of running tests and packaging.

Modifications
- csproj -> xproj + project.json
- support for .NET Standard 1.3
- build script is now based on CAKE
- using dotnet CLI for building, testing, packing
- strong name by default (snk included)

Result
DotNetty works on .NET Core and any other platform supporting .NET Standard 1.3+.
2016-11-07 17:50:24 -08:00

41 lines
1.2 KiB
C#

// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
namespace Factorial
{
using System;
using System.Collections.Generic;
using System.Numerics;
using DotNetty.Buffers;
using DotNetty.Codecs;
using DotNetty.Transport.Channels;
public class BigIntegerDecoder : ByteToMessageDecoder
{
protected override void Decode(IChannelHandlerContext context, IByteBuffer input, List<object> output)
{
if (input.ReadableBytes < 5)
{
return;
}
input.MarkReaderIndex();
int magicNumber = input.ReadByte();
if (magicNumber != 'F')
{
input.ResetReaderIndex();
throw new Exception("Invalid magic number: " + magicNumber);
}
int dataLength = input.ReadInt();
if (input.ReadableBytes < dataLength)
{
input.ResetReaderIndex();
return;
}
var decoded = new byte[dataLength];
input.ReadBytes(decoded);
output.Add(new BigInteger(decoded));
}
}
}