MCPcopy
hub / github.com/SurgeDM/Surge / ToRuntimeConfig

Method ToRuntimeConfig

internal/config/settings.go:1050–1083  ·  view source on GitHub ↗

ToRuntimeConfig creates the engine runtime config from validated settings.

()

Source from the content-addressed store, hash-verified

1048
1049// ToRuntimeConfig creates the engine runtime config from validated settings.
1050func (s *Settings) ToRuntimeConfig() *types.RuntimeConfig {
1051 var globalRate, defaultRate int64
1052 if s.Network.GlobalRateLimit != nil {
1053 var err error
1054 globalRate, err = utils.ParseRateLimitValue(s.Network.GlobalRateLimit.Value)
1055 if err != nil {
1056 globalRate, _ = utils.ParseRateLimitValue(s.Network.GlobalRateLimit.DefaultValue)
1057 }
1058 }
1059 if s.Network.DefaultDownloadRateLimit != nil {
1060 var err error
1061 defaultRate, err = utils.ParseRateLimitValue(s.Network.DefaultDownloadRateLimit.Value)
1062 if err != nil {
1063 defaultRate, _ = utils.ParseRateLimitValue(s.Network.DefaultDownloadRateLimit.DefaultValue)
1064 }
1065 }
1066 return &types.RuntimeConfig{
1067 MaxConnectionsPerDownload: Resolve[int](s.Network.MaxConnectionsPerDownload),
1068 UserAgent: Resolve[string](s.Network.UserAgent),
1069 ProxyURL: Resolve[string](s.Network.ProxyURL),
1070 CustomDNS: Resolve[string](s.Network.CustomDNS),
1071 SequentialDownload: Resolve[bool](s.Network.SequentialDownload),
1072 MinChunkSize: Resolve[int64](s.Network.MinChunkSize),
1073 GlobalRateLimitBps: globalRate,
1074 DefaultDownloadRateLimitBps: defaultRate,
1075 WorkerBufferSize: Resolve[int](s.Network.WorkerBufferSize),
1076 DialHedgeCount: Resolve[int](s.Network.DialHedgeCount),
1077 MaxTaskRetries: Resolve[int](s.Performance.MaxTaskRetries),
1078 SlowWorkerThreshold: Resolve[float64](s.Performance.SlowWorkerThreshold),
1079 SlowWorkerGracePeriod: Resolve[time.Duration](s.Performance.SlowWorkerGracePeriod),
1080 StallTimeout: Resolve[time.Duration](s.Performance.StallTimeout),
1081 SpeedEmaAlpha: Resolve[float64](s.Performance.SpeedEmaAlpha),
1082 }
1083}
1084
1085// Clone returns a deep copy of the settings.
1086func (s *Settings) Clone() *Settings {

Callers 7

ReloadSettingsMethod · 0.80
addMethod · 0.80
resolveRuntimeConfigFunction · 0.80
enqueueResolvedMethod · 0.80
buildResumeConfigFunction · 0.80
TestToRuntimeConfigFunction · 0.80

Calls 1

ParseRateLimitValueFunction · 0.92

Tested by 1

TestToRuntimeConfigFunction · 0.64