(clientKey string)
| 72 | } |
| 73 | |
| 74 | func (c *clientCacheImpl) GetClientForClientKey(clientKey string) (any, error) { |
| 75 | c.cacheLock.RLock() |
| 76 | entry, ok := c.clients[clientKey] |
| 77 | c.cacheLock.RUnlock() |
| 78 | if ok { |
| 79 | return entry.client, nil |
| 80 | } |
| 81 | |
| 82 | c.cacheLock.Lock() |
| 83 | defer c.cacheLock.Unlock() |
| 84 | |
| 85 | entry, ok = c.clients[clientKey] |
| 86 | if ok { |
| 87 | return entry.client, nil |
| 88 | } |
| 89 | |
| 90 | client, release, err := c.clientProvider(clientKey) |
| 91 | if err != nil { |
| 92 | return nil, err |
| 93 | } |
| 94 | c.clients[clientKey] = cachedEntry{client: client, release: release} |
| 95 | return client, nil |
| 96 | } |
| 97 | |
| 98 | func (c *clientCacheImpl) GetAllClients() ([]any, error) { |
| 99 | var result []any |
no test coverage detected