// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Microsoft.Protocols.TestTools.StackSdk.RemoteDesktop.Rdpeudp
{
    /// <summary>
    /// This class used to provide FEC encoding and decoding functionality.
    /// </summary>
    public class FECManager
    {
        /// <summary>
        /// Compute the FEC data with the input sources data arrays. 
        /// </summary>
        /// <param name="sourcePackes">Array of RdpudpPackets used to calculate FEC data</param>
        /// <param name="uFecIndex">This value is generated by the FEC engine</param>
        /// <returns>FEC data.</returns>
        public static byte[] Encode(RdpeudpPacket[] sourcePackes, out byte uFecIndex)
        {
            throw new NotImplementedException();
        }

        /// <summary>
        /// Compute the source data in the specified index.
        /// </summary>
        /// <param name="sourcePackes">Array of RdpudpPackets received.</param>
        /// <param name="uFecIndex">Generated by the FEC engine when encoding</param>
        /// <param name="fecData">Fec data</param>
        /// <param name="targetIdx">The index in which the data to be decoded.</param>
        /// <returns>The target source data.</returns>
        public static byte[] Decode(RdpeudpPacket[] sourcePackets, byte uFecIndex, byte[] fecData, uint targetIdx)
        {
            throw new NotImplementedException();
        }
    }
}
