(ctx context.Context, queryHandler ChannelQueryHandler, channel channels.ID, validFrom uint64, options ChannelCacheOptions, cacheStats *base.CacheStats)
| 135 | } |
| 136 | |
| 137 | func newChannelCacheWithOptions(ctx context.Context, queryHandler ChannelQueryHandler, channel channels.ID, validFrom uint64, options ChannelCacheOptions, cacheStats *base.CacheStats) *singleChannelCacheImpl { |
| 138 | cache := newSingleChannelCache(queryHandler, channel, validFrom, cacheStats) |
| 139 | |
| 140 | // Update cache options when present |
| 141 | if options.ChannelCacheMinLength > 0 { |
| 142 | cache.options.ChannelCacheMinLength = options.ChannelCacheMinLength |
| 143 | } |
| 144 | |
| 145 | if options.ChannelCacheMaxLength > 0 { |
| 146 | cache.options.ChannelCacheMaxLength = options.ChannelCacheMaxLength |
| 147 | } |
| 148 | |
| 149 | if options.ChannelCacheAge > 0 { |
| 150 | cache.options.ChannelCacheAge = options.ChannelCacheAge |
| 151 | } |
| 152 | |
| 153 | if options.MaxNumChannels > 0 { |
| 154 | cache.options.MaxNumChannels = options.MaxNumChannels |
| 155 | } |
| 156 | |
| 157 | base.DebugfCtx(ctx, base.KeyCache, "Initialized cache for channel %q with min:%v max:%v age:%v, validFrom: %d", |
| 158 | base.UD(cache.channelID), cache.options.ChannelCacheMinLength, cache.options.ChannelCacheMaxLength, cache.options.ChannelCacheAge, validFrom) |
| 159 | |
| 160 | return cache |
| 161 | } |
| 162 | |
| 163 | type ChannelCacheOptions struct { |
| 164 | ChannelCacheMinLength int // Keep at least this many entries in each per-channel cache |
no test coverage detected