gitee.com/h79/goutils@v1.22.10/discovery/discovery.go (about)

     1  package discovery
     2  
     3  import (
     4  	"gitee.com/h79/goutils/discovery/service"
     5  	"sync"
     6  )
     7  
     8  // 需要对services
     9  
    10  type Services struct {
    11  	lock     sync.Mutex
    12  	Services map[string]service.Base
    13  }
    14  
    15  func NewServices() *Services {
    16  	return &Services{
    17  		Services: make(map[string]service.Base),
    18  	}
    19  }
    20  
    21  func (s *Services) Add(name string, base service.Base) {
    22  	s.lock.Lock()
    23  	defer s.lock.Unlock()
    24  	s.Services[name] = base
    25  }
    26  
    27  func (s *Services) Del(name string) {
    28  	s.lock.Lock()
    29  	defer s.lock.Unlock()
    30  	delete(s.Services, name)
    31  }
    32  
    33  func (s *Services) Get(name string) (service.Base, bool) {
    34  	s.lock.Lock()
    35  	defer s.lock.Unlock()
    36  	it, ok := s.Services[name]
    37  	return it, ok
    38  }