MCPcopy Create free account
hub / github.com/datastax/cql-proxy / OnEvent

Method OnEvent

proxycore/lb.go:45–63  ·  view source on GitHub ↗
(event Event)

Source from the content-addressed store, hash-verified

43}
44
45func (l *roundRobinLoadBalancer) OnEvent(event Event) {
46 l.mu.Lock()
47 defer l.mu.Unlock()
48
49 switch evt := event.(type) {
50 case *BootstrapEvent:
51 l.hosts.Store(evt.Hosts)
52 case *AddEvent:
53 l.hosts.Store(append(l.copy(), evt.Host))
54 case *RemoveEvent:
55 cpy := l.copy()
56 for i, h := range cpy {
57 if h.Key() == evt.Host.Key() {
58 l.hosts.Store(append(cpy[:i], cpy[i+1:]...))
59 break
60 }
61 }
62 }
63}
64
65func (l *roundRobinLoadBalancer) copy() []*Host {
66 hosts := l.hosts.Load().([]*Host)

Callers

nothing calls this directly

Calls 3

copyMethod · 0.95
StoreMethod · 0.65
KeyMethod · 0.65

Tested by

no test coverage detected