Documentation ¶
Index ¶
- Constants
- type AtomicPacketLimiter
- type Flag
- type LimitCounters
- type Number
- type PacketLimiter
- func (p PacketLimiter) CanReceivePacket(pt PacketType) bool
- func (p PacketLimiter) ForJoiner() PacketLimiter
- func (p PacketLimiter) GetRemainingPacketCount(replaceUnlimitedWith uint8) uint8
- func (p PacketLimiter) GetRemainingPacketCountDefault() uint8
- func (p PacketLimiter) HasAnyPacketReceived() bool
- func (p PacketLimiter) HasAnyPacketSent() bool
- func (p PacketLimiter) HasPacketReceived(pt PacketType) bool
- func (p PacketLimiter) HasPacketSent(pt PacketType) bool
- func (p *PacketLimiter) HasReceivedOrSent() bool
- func (p PacketLimiter) IsLocal() bool
- func (p PacketLimiter) MergeSent(limiter PacketLimiter) PacketLimiter
- func (p PacketLimiter) SetPacketReceived(pt PacketType) (bool, PacketLimiter)
- func (p PacketLimiter) SetPacketSent(pt PacketType) (bool, PacketLimiter)
- func (p PacketLimiter) String() string
- type PacketType
- func (p PacketType) GetLimitCounterIndex() int
- func (p PacketType) GetLimitPerSender() uint8
- func (p PacketType) GetPayloadEquivalent() PacketType
- func (p PacketType) IsAllowedForJoiner() bool
- func (p PacketType) IsEphemeralPacket() bool
- func (p PacketType) IsMemberPacket() bool
- func (p PacketType) IsPhasedPacket() bool
- func (p PacketType) RuneName() rune
- func (p PacketType) String() string
- func (p PacketType) ToPhaseNumber() (Number, bool)
- type Type
Constants ¶
View Source
const Count = int(upperPhaseNumber)
View Source
const Mask = 1<<upperPhaseNumber - 1
View Source
const PacketCountedLimits = 2
View Source
const PacketOffPhase = 8
View Source
const PacketTypeCount = int(maxPacketType)
View Source
const UnlimitedPackets = math.MaxUint8
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AtomicPacketLimiter ¶
type AtomicPacketLimiter struct {
// contains filtered or unexported fields
}
func NewAtomicPacketLimiter ¶
func NewAtomicPacketLimiter(initial PacketLimiter) *AtomicPacketLimiter
func (*AtomicPacketLimiter) GetPacketLimiter ¶
func (p *AtomicPacketLimiter) GetPacketLimiter() PacketLimiter
func (*AtomicPacketLimiter) SetPacketReceived ¶
func (p *AtomicPacketLimiter) SetPacketReceived(pt PacketType) bool
func (*AtomicPacketLimiter) UpdatePacketLimiter ¶
func (p *AtomicPacketLimiter) UpdatePacketLimiter(prev PacketLimiter, new PacketLimiter) bool
type LimitCounters ¶
type LimitCounters [PacketCountedLimits]uint8
func CreateLimitCounters ¶
func CreateLimitCounters(maxExtPhase2 uint8) (LimitCounters, uint16)
func (LimitCounters) String ¶
func (v LimitCounters) String() string
func (LimitCounters) WriteLimitTo ¶
func (v LimitCounters) WriteLimitTo(b *strings.Builder, index int)
type PacketLimiter ¶
type PacketLimiter struct {
// contains filtered or unexported fields
}
func NewLocalPacketLimiter ¶
func NewLocalPacketLimiter() PacketLimiter
func NewPacketLimiter ¶
func NewPacketLimiter(maxExtPhase2 uint8) PacketLimiter
func NewPacketWithOptions ¶
func NewPacketWithOptions(isJoiner bool, maxExtPhase2 uint8) PacketLimiter
func (PacketLimiter) CanReceivePacket ¶
func (p PacketLimiter) CanReceivePacket(pt PacketType) bool
func (PacketLimiter) ForJoiner ¶
func (p PacketLimiter) ForJoiner() PacketLimiter
func (PacketLimiter) GetRemainingPacketCount ¶
func (p PacketLimiter) GetRemainingPacketCount(replaceUnlimitedWith uint8) uint8
func (PacketLimiter) GetRemainingPacketCountDefault ¶
func (p PacketLimiter) GetRemainingPacketCountDefault() uint8
func (PacketLimiter) HasAnyPacketReceived ¶
func (p PacketLimiter) HasAnyPacketReceived() bool
func (PacketLimiter) HasAnyPacketSent ¶
func (p PacketLimiter) HasAnyPacketSent() bool
func (PacketLimiter) HasPacketReceived ¶
func (p PacketLimiter) HasPacketReceived(pt PacketType) bool
func (PacketLimiter) HasPacketSent ¶
func (p PacketLimiter) HasPacketSent(pt PacketType) bool
func (*PacketLimiter) HasReceivedOrSent ¶
func (p *PacketLimiter) HasReceivedOrSent() bool
func (PacketLimiter) IsLocal ¶
func (p PacketLimiter) IsLocal() bool
func (PacketLimiter) MergeSent ¶
func (p PacketLimiter) MergeSent(limiter PacketLimiter) PacketLimiter
func (PacketLimiter) SetPacketReceived ¶
func (p PacketLimiter) SetPacketReceived(pt PacketType) (bool, PacketLimiter)
func (PacketLimiter) SetPacketSent ¶
func (p PacketLimiter) SetPacketSent(pt PacketType) (bool, PacketLimiter)
func (PacketLimiter) String ¶
func (p PacketLimiter) String() string
type PacketType ¶
type PacketType uint8
const ( PacketPhase0 PacketType = iota PacketPhase1 PacketPhase2 PacketPhase3 PacketPhase4 PacketPulsarPulse // PacketPhase0 | PacketOffPhase /* Triggers Phase0-1 */ PacketReqPhase1 // PacketPhase1 | PacketOffPhase PacketExtPhase2 // PacketPhase2 | PacketOffPhase PacketFastPhase3 // PacketPhase3 | PacketOffPhase )
func (PacketType) GetLimitCounterIndex ¶
func (p PacketType) GetLimitCounterIndex() int
TODO TEST must correlate: GetLimitCounterIndex() must be unique for every p, and less than PacketCountedLimits
func (PacketType) GetLimitPerSender ¶
func (p PacketType) GetLimitPerSender() uint8
TODO TEST must correlate: (p.GetLimitPerSender()<=1)==(p.GetLimitCounterIndex()<0)
func (PacketType) GetPayloadEquivalent ¶
func (p PacketType) GetPayloadEquivalent() PacketType
func (PacketType) IsAllowedForJoiner ¶
func (p PacketType) IsAllowedForJoiner() bool
func (PacketType) IsEphemeralPacket ¶
func (p PacketType) IsEphemeralPacket() bool
func (PacketType) IsMemberPacket ¶
func (p PacketType) IsMemberPacket() bool
func (PacketType) IsPhasedPacket ¶
func (p PacketType) IsPhasedPacket() bool
func (PacketType) RuneName ¶
func (p PacketType) RuneName() rune
func (PacketType) String ¶
func (p PacketType) String() string
func (PacketType) ToPhaseNumber ¶
func (p PacketType) ToPhaseNumber() (Number, bool)
Click to show internal directories.
Click to hide internal directories.