phases

package
v0.0.0-...-05bc493 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 20, 2023 License: MIT Imports: 4 Imported by: 0

Documentation

Index

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 Flag

type Flag uint8
const (
	FlagUnique Flag = iota
)

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 Number

type Number uint8
const (
	Phase0 Number = iota
	Phase1
	Phase2
	Phase3
	Phase4
)

func (Number) GetPhaseType

func (v Number) GetPhaseType() Type

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)

type Type

type Type uint8
const (
	TypePulse Type = iota
	TypeSoloState
	TypeNeighborsState
	TypeStateVectors
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL