using System;

namespace QCRPG.Framework;

public class IncomingPacketData : PacketData, IDeepCopyable<IncomingPacketData>
{
	public IncomingPacketData(byte b)
		: base(b)
	{
	}

	public IncomingPacketData(byte[] bytes, bool performHexAsciiConversion = false)
		: base(bytes, performHexAsciiConversion)
	{
	}

	public IncomingPacketData(byte[] bytes, int length, bool performHexAsciiConversion = false)
		: base(bytes, length, performHexAsciiConversion)
	{
	}

	public IncomingPacketData(PacketDataType type, byte b)
		: base(type, b)
	{
	}

	public IncomingPacketData(PacketDataType type, byte[] bytes)
		: base(type, bytes)
	{
	}

	public IncomingPacketData(PacketDataType type, string s)
		: base(type, s)
	{
	}

	public IncomingPacketData(Exception ex)
		: base(ex)
	{
	}

	public new virtual IncomingPacketData DeepCopy()
	{
		IncomingPacketData incomingPacketData = new IncomingPacketData(type, bytes);
		incomingPacketData.suppressRawByteLogging = suppressRawByteLogging;
		incomingPacketData.skipReceiveEnqueue = skipReceiveEnqueue;
		return incomingPacketData;
	}
}
