mirror of https://github.com/portainer/portainer
				
				
				
			
		
			
				
	
	
		
			35 lines
		
	
	
		
			595 B
		
	
	
	
		
			Go
		
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			595 B
		
	
	
	
		
			Go
		
	
	
package logoutcontext
 | 
						|
 | 
						|
import "sync"
 | 
						|
 | 
						|
type (
 | 
						|
	ServiceFactory struct {
 | 
						|
		mu       sync.Mutex
 | 
						|
		services map[string]*Service
 | 
						|
	}
 | 
						|
)
 | 
						|
 | 
						|
var serviceFactory = ServiceFactory{
 | 
						|
	services: make(map[string]*Service),
 | 
						|
}
 | 
						|
 | 
						|
func GetService(token string) *Service {
 | 
						|
	serviceFactory.mu.Lock()
 | 
						|
	defer serviceFactory.mu.Unlock()
 | 
						|
 | 
						|
	service, ok := serviceFactory.services[token]
 | 
						|
	if !ok {
 | 
						|
		service = NewService()
 | 
						|
		serviceFactory.services[token] = service
 | 
						|
	}
 | 
						|
 | 
						|
	return service
 | 
						|
}
 | 
						|
 | 
						|
func RemoveService(token string) {
 | 
						|
	serviceFactory.mu.Lock()
 | 
						|
	defer serviceFactory.mu.Unlock()
 | 
						|
 | 
						|
	delete(serviceFactory.services, token)
 | 
						|
}
 |