mirror of
https://github.com/number571/go-peer.git
synced 2026-09-12 19:50:00 +05:00
68 lines
1.5 KiB
Go
68 lines
1.5 KiB
Go
package queue
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/number571/go-peer/pkg/message/layer1"
|
|
)
|
|
|
|
var (
|
|
_ ISettings = &sSettings{}
|
|
)
|
|
|
|
type SSettings sSettings
|
|
type sSettings struct {
|
|
FMessageConstructSettings layer1.IConstructSettings
|
|
FNetworkMask uint32
|
|
FConsumersCap uint64
|
|
FQueuePoolCap [2]uint64
|
|
FQueuePeriod time.Duration
|
|
}
|
|
|
|
func NewSettings(pSett *SSettings) ISettings {
|
|
return (&sSettings{
|
|
FMessageConstructSettings: pSett.FMessageConstructSettings,
|
|
FNetworkMask: pSett.FNetworkMask,
|
|
FConsumersCap: pSett.FConsumersCap,
|
|
FQueuePoolCap: pSett.FQueuePoolCap,
|
|
FQueuePeriod: pSett.FQueuePeriod,
|
|
}).mustNotNull()
|
|
}
|
|
|
|
func (p *sSettings) mustNotNull() ISettings {
|
|
if p.FMessageConstructSettings == nil {
|
|
panic(`p.FMessageConstructSettings == nil`)
|
|
}
|
|
if p.FQueuePeriod == 0 {
|
|
panic(`p.FQueuePeriod == 0`)
|
|
}
|
|
if p.FQueuePoolCap[0] == 0 || p.FQueuePoolCap[1] == 0 {
|
|
panic(`p.FQueuePoolCap[0] == 0 || p.FQueuePoolCap[1] == 0`)
|
|
}
|
|
if p.FConsumersCap == 0 {
|
|
panic(`p.FConsumersCap == 0`)
|
|
}
|
|
// p.FNetworkMask can be = 0
|
|
return p
|
|
}
|
|
|
|
func (p *sSettings) GetMessageConstructSettings() layer1.IConstructSettings {
|
|
return p.FMessageConstructSettings
|
|
}
|
|
|
|
func (p *sSettings) GetNetworkMask() uint32 {
|
|
return p.FNetworkMask
|
|
}
|
|
|
|
func (p *sSettings) GetQueuePoolCap() [2]uint64 {
|
|
return p.FQueuePoolCap
|
|
}
|
|
|
|
func (p *sSettings) GetQueuePeriod() time.Duration {
|
|
return p.FQueuePeriod
|
|
}
|
|
|
|
func (p *sSettings) GetConsumersCap() uint64 {
|
|
return p.FConsumersCap
|
|
}
|