MCPcopy Create free account
hub / github.com/couchbase/sync_gateway / getChannelCache

Method getChannelCache

db/channel_cache.go:318–343  ·  view source on GitHub ↗
(ctx context.Context, channel channels.ID)

Source from the content-addressed store, hash-verified

316}
317
318func (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
345func (c *channelCacheImpl) getBypassChannelCache(ch channels.ID) (SingleChannelCache, error) {
346 queryHandler, err := c.queryHandlerFactory(ch.CollectionID)

Callers 3

getSingleChannelCacheMethod · 0.95
GetChangesMethod · 0.95
GetCachedChangesMethod · 0.95

Calls 4

addChannelCacheMethod · 0.95
AsSingleChannelCacheFunction · 0.85
GetMethod · 0.45
AddMethod · 0.45

Tested by

no test coverage detected