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  }