(ctx context.Context, channel channels.ID)
| 316 | } |
| 317 | |
| 318 | func (c *channelCacheImpl) getChannelCache(ctx context.Context, channel channels.ID) (SingleChannelCache, error) { |
| 319 | |
| 320 | cacheValue, found := c.channelCaches.Get(channel) |
| 321 | if found { |
| 322 | return AsSingleChannelCache(ctx, cacheValue), nil |
| 323 | } |
| 324 | |
| 325 | // Attempt to add a singleChannelCache for the channel name. If unsuccessful, return a bypass channel cache |
| 326 | singleChannelCache, ok := c.addChannelCache(ctx, channel) |
| 327 | if ok { |
| 328 | return singleChannelCache, nil |
| 329 | } |
| 330 | |
| 331 | queryHandler, err := c.queryHandlerFactory(channel.CollectionID) |
| 332 | if err != nil { |
| 333 | return nil, err |
| 334 | } |
| 335 | |
| 336 | bypassChannelCache := &bypassChannelCache{ |
| 337 | channel: channel, |
| 338 | queryHandler: queryHandler, |
| 339 | } |
| 340 | c.cacheStats.ChannelCacheBypassCount.Add(1) |
| 341 | return bypassChannelCache, nil |
| 342 | |
| 343 | } |
| 344 | |
| 345 | func (c *channelCacheImpl) getBypassChannelCache(ch channels.ID) (SingleChannelCache, error) { |
| 346 | queryHandler, err := c.queryHandlerFactory(ch.CollectionID) |
no test coverage detected