github.com/xmidt-org/webpa-common@v1.11.9/service/registrars.go (about) 1 package service 2 3 import ( 4 "github.com/go-kit/kit/sd" 5 ) 6 7 // Registrars is a aggregate sd.Registrar that allows allows composite registration and deregistration. 8 // Keys in this map type will be service advertisements or instances, e.g. "host.com:8080" or "https://foobar.com" 9 type Registrars map[string]sd.Registrar 10 11 func (r Registrars) Register() { 12 for _, v := range r { 13 v.Register() 14 } 15 } 16 17 func (r Registrars) Deregister() { 18 for _, v := range r { 19 v.Deregister() 20 } 21 } 22 23 func (r Registrars) Has(key string) bool { 24 _, ok := r[key] 25 return ok 26 } 27 28 func (r Registrars) Len() int { 29 return len(r) 30 } 31 32 func (r *Registrars) Add(key string, v sd.Registrar) { 33 if *r == nil { 34 *r = make(Registrars) 35 } 36 37 (*r)[key] = v 38 }