// SPDX-FileCopyrightText: 2023 The Pion community <https://pion.ly>
// SPDX-License-Identifier: MIT

package sctp

import (
	
)

type associationStats struct {
	nPacketsReceived uint64
	nPacketsSent     uint64
	nDATAs           uint64
	nSACKsReceived   uint64
	nSACKsSent       uint64
	nT3Timeouts      uint64
	nAckTimeouts     uint64
	nFastRetrans     uint64
}

func ( *associationStats) () {
	atomic.AddUint64(&.nPacketsReceived, 1)
}

func ( *associationStats) () uint64 {
	return atomic.LoadUint64(&.nPacketsReceived)
}

func ( *associationStats) () {
	atomic.AddUint64(&.nPacketsSent, 1)
}

func ( *associationStats) () uint64 {
	return atomic.LoadUint64(&.nPacketsSent)
}

func ( *associationStats) () {
	atomic.AddUint64(&.nDATAs, 1)
}

func ( *associationStats) () uint64 {
	return atomic.LoadUint64(&.nDATAs)
}

func ( *associationStats) () {
	atomic.AddUint64(&.nSACKsReceived, 1)
}

func ( *associationStats) () uint64 {
	return atomic.LoadUint64(&.nSACKsReceived)
}

func ( *associationStats) () {
	atomic.AddUint64(&.nSACKsSent, 1)
}

func ( *associationStats) () uint64 {
	return atomic.LoadUint64(&.nSACKsSent)
}

func ( *associationStats) () {
	atomic.AddUint64(&.nT3Timeouts, 1)
}

func ( *associationStats) () uint64 {
	return atomic.LoadUint64(&.nT3Timeouts)
}

func ( *associationStats) () {
	atomic.AddUint64(&.nAckTimeouts, 1)
}

func ( *associationStats) () uint64 {
	return atomic.LoadUint64(&.nAckTimeouts)
}

func ( *associationStats) () {
	atomic.AddUint64(&.nFastRetrans, 1)
}

func ( *associationStats) () uint64 {
	return atomic.LoadUint64(&.nFastRetrans)
}

func ( *associationStats) () {
	atomic.StoreUint64(&.nPacketsReceived, 0)
	atomic.StoreUint64(&.nPacketsSent, 0)
	atomic.StoreUint64(&.nDATAs, 0)
	atomic.StoreUint64(&.nSACKsReceived, 0)
	atomic.StoreUint64(&.nSACKsSent, 0)
	atomic.StoreUint64(&.nT3Timeouts, 0)
	atomic.StoreUint64(&.nAckTimeouts, 0)
	atomic.StoreUint64(&.nFastRetrans, 0)
}