|  | @@ -15,11 +15,11 @@ const (
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  type UserSet interface {
 | 
	
		
			
				|  |  |  	AddUser(user config.User) error
 | 
	
		
			
				|  |  | -	GetUser(timeHash []byte) (*config.ID, int64, bool)
 | 
	
		
			
				|  |  | +	GetUser(timeHash []byte) (config.User, int64, bool)
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  type TimedUserSet struct {
 | 
	
		
			
				|  |  | -	validUserIds        []*config.ID
 | 
	
		
			
				|  |  | +	validUsers        []config.User
 | 
	
		
			
				|  |  |  	userHash            map[string]indexTimePair
 | 
	
		
			
				|  |  |  	userHashDeleteQueue *collect.TimedQueue
 | 
	
		
			
				|  |  |  	access              sync.RWMutex
 | 
	
	
		
			
				|  | @@ -32,7 +32,7 @@ type indexTimePair struct {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  func NewTimedUserSet() UserSet {
 | 
	
		
			
				|  |  |  	tus := &TimedUserSet{
 | 
	
		
			
				|  |  | -		validUserIds:        make([]*config.ID, 0, 16),
 | 
	
		
			
				|  |  | +		validUsers:        make([]config.User, 0, 16),
 | 
	
		
			
				|  |  |  		userHash:            make(map[string]indexTimePair, 512),
 | 
	
		
			
				|  |  |  		userHashDeleteQueue: collect.NewTimedQueue(updateIntervalSec),
 | 
	
		
			
				|  |  |  		access:              sync.RWMutex{},
 | 
	
	
		
			
				|  | @@ -67,8 +67,8 @@ func (us *TimedUserSet) updateUserHash(tick <-chan time.Time) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	for now := range tick {
 | 
	
		
			
				|  |  |  		nowSec := now.Unix() + cacheDurationSec
 | 
	
		
			
				|  |  | -		for idx, id := range us.validUserIds {
 | 
	
		
			
				|  |  | -			us.generateNewHashes(lastSec, nowSec, idx, id)
 | 
	
		
			
				|  |  | +		for idx, user := range us.validUsers {
 | 
	
		
			
				|  |  | +			us.generateNewHashes(lastSec, nowSec, idx, user.ID())
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		lastSec = nowSec
 | 
	
		
			
				|  |  |  	}
 | 
	
	
		
			
				|  | @@ -76,8 +76,8 @@ func (us *TimedUserSet) updateUserHash(tick <-chan time.Time) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  func (us *TimedUserSet) AddUser(user config.User) error {
 | 
	
		
			
				|  |  |  	id := user.ID()
 | 
	
		
			
				|  |  | -	idx := len(us.validUserIds)
 | 
	
		
			
				|  |  | -	us.validUserIds = append(us.validUserIds, id)
 | 
	
		
			
				|  |  | +	idx := len(us.validUsers)
 | 
	
		
			
				|  |  | +	us.validUsers = append(us.validUsers, user)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	nowSec := time.Now().Unix()
 | 
	
		
			
				|  |  |  	lastSec := nowSec - cacheDurationSec
 | 
	
	
		
			
				|  | @@ -86,12 +86,12 @@ func (us *TimedUserSet) AddUser(user config.User) error {
 | 
	
		
			
				|  |  |  	return nil
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -func (us TimedUserSet) GetUser(userHash []byte) (*config.ID, int64, bool) {
 | 
	
		
			
				|  |  | +func (us TimedUserSet) GetUser(userHash []byte) (config.User, int64, bool) {
 | 
	
		
			
				|  |  |  	defer us.access.RUnlock()
 | 
	
		
			
				|  |  |  	us.access.RLock()
 | 
	
		
			
				|  |  |  	pair, found := us.userHash[string(userHash)]
 | 
	
		
			
				|  |  |  	if found {
 | 
	
		
			
				|  |  | -		return us.validUserIds[pair.index], pair.timeSec, true
 | 
	
		
			
				|  |  | +		return us.validUsers[pair.index], pair.timeSec, true
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  	return nil, 0, false
 | 
	
		
			
				|  |  |  }
 |