* cleanup client/selector/lookup * add mdns router, remove registry from client * fix roundtripper * remove comment * fix compile issue * fix mucp test * fix api router
		
			
				
	
	
		
			27 lines
		
	
	
		
			668 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			668 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Package selector is for node selection and load balancing
 | |
| package selector
 | |
| 
 | |
| import (
 | |
| 	"errors"
 | |
| )
 | |
| 
 | |
| var (
 | |
| 	// ErrNoneAvailable is returned by select when no routes were provided to select from
 | |
| 	ErrNoneAvailable = errors.New("none available")
 | |
| )
 | |
| 
 | |
| // Selector selects a route from a pool
 | |
| type Selector interface {
 | |
| 	// Select a route from the pool using the strategy
 | |
| 	Select([]string, ...SelectOption) (Next, error)
 | |
| 	// Record the error returned from a route to inform future selection
 | |
| 	Record(string, error) error
 | |
| 	// Reset the selector
 | |
| 	Reset() error
 | |
| 	// String returns the name of the selector
 | |
| 	String() string
 | |
| }
 | |
| 
 | |
| // Next returns the next node
 | |
| type Next func() string
 |