go-peer/pkg/network/settings.go
2024-10-03 09:54:00 +07:00

67 lines
1.2 KiB
Go

package network
import (
"time"
"github.com/number571/go-peer/pkg/network/conn"
)
var (
_ ISettings = &sSettings{}
)
type SSettings sSettings
type sSettings struct {
FConnSettings conn.ISettings
FAddress string
FMaxConnects uint64
FReadTimeout time.Duration
FWriteTimeout time.Duration
}
func NewSettings(pSett *SSettings) ISettings {
return (&sSettings{
FConnSettings: pSett.FConnSettings,
FAddress: pSett.FAddress,
FMaxConnects: pSett.FMaxConnects,
FReadTimeout: pSett.FReadTimeout,
FWriteTimeout: pSett.FWriteTimeout,
}).mustNotNull()
}
func (p *sSettings) mustNotNull() ISettings {
if p.FConnSettings == nil {
panic(`p.FConnSettings == nil`)
}
if p.FMaxConnects == 0 {
panic(`p.FMaxConnects == 0`)
}
if p.FReadTimeout == 0 {
panic(`p.FReadTimeout == 0`)
}
if p.FWriteTimeout == 0 {
panic(`p.FWriteTimeout == 0`)
}
return p
}
func (p *sSettings) GetAddress() string {
return p.FAddress
}
func (p *sSettings) GetMaxConnects() uint64 {
return p.FMaxConnects
}
func (p *sSettings) GetConnSettings() conn.ISettings {
return p.FConnSettings
}
func (p *sSettings) GetReadTimeout() time.Duration {
return p.FReadTimeout
}
func (p *sSettings) GetWriteTimeout() time.Duration {
return p.FWriteTimeout
}