using QCRPG.Framework;

namespace QCRPG.TSL.BT;

public class BTTrafficGenInfo : TrafficGenInfoBase
{
	public ACLDataQueue aclDataQueue;

	public uint aclDataLength;

	public uint connectionHandle;

	public uint numL2CAPPackets;

	public uint numCompletedAclPackets;

	public uint completedByteCount;

	public uint l2capPacketLength;

	public uint l2capSentPacketCount;

	public uint l2capSentDataCount;

	public uint l2capSendDataLength;

	public uint l2capReceivedPacketCount;

	public uint l2capReceivedHeaderCount;

	public uint l2capReceivedDataCount;

	public uint l2capReceivedChannelId;

	public uint l2capReceiveDataLength;

	public BTTrafficGenMode trafficGenMode;

	public byte txSeed;

	public byte rxSeed;

	public byte expectedData;

	public bool flushable;

	public bool enableSeqNum;

	public uint seqNum;

	public override TrafficGenInfoBase DeepCopy()
	{
		BTTrafficGenInfo bTTrafficGenInfo = new BTTrafficGenInfo();
		bTTrafficGenInfo.id = id;
		bTTrafficGenInfo.endType = endType;
		bTTrafficGenInfo.status = status;
		bTTrafficGenInfo.startTime = startTime;
		bTTrafficGenInfo.stopTime = stopTime;
		bTTrafficGenInfo.stop = stop;
		bTTrafficGenInfo.aclDataQueue = aclDataQueue;
		bTTrafficGenInfo.aclDataLength = aclDataLength;
		bTTrafficGenInfo.connectionHandle = connectionHandle;
		bTTrafficGenInfo.numL2CAPPackets = numL2CAPPackets;
		bTTrafficGenInfo.numCompletedAclPackets = numCompletedAclPackets;
		bTTrafficGenInfo.completedByteCount = completedByteCount;
		bTTrafficGenInfo.l2capPacketLength = l2capPacketLength;
		bTTrafficGenInfo.l2capSentPacketCount = l2capSentPacketCount;
		bTTrafficGenInfo.l2capSentDataCount = l2capSentDataCount;
		bTTrafficGenInfo.l2capSendDataLength = l2capSendDataLength;
		bTTrafficGenInfo.l2capReceivedPacketCount = l2capReceivedPacketCount;
		bTTrafficGenInfo.l2capReceivedHeaderCount = l2capReceivedHeaderCount;
		bTTrafficGenInfo.l2capReceivedDataCount = l2capReceivedDataCount;
		bTTrafficGenInfo.l2capReceivedChannelId = l2capReceivedChannelId;
		bTTrafficGenInfo.l2capReceiveDataLength = l2capReceiveDataLength;
		bTTrafficGenInfo.trafficGenMode = trafficGenMode;
		bTTrafficGenInfo.txSeed = txSeed;
		bTTrafficGenInfo.rxSeed = rxSeed;
		bTTrafficGenInfo.expectedData = expectedData;
		bTTrafficGenInfo.flushable = flushable;
		bTTrafficGenInfo.enableSeqNum = enableSeqNum;
		bTTrafficGenInfo.seqNum = seqNum;
		return bTTrafficGenInfo;
	}

	public void SetACLDataParameters(ACLDataQueue aclDataQueue, uint aclDataLength)
	{
		aclDataQueue.AddConnection(connectionHandle);
		this.aclDataQueue = aclDataQueue;
		this.aclDataLength = aclDataLength;
	}
}
