mirror of https://github.com/XTLS/Xray-core
				
				
				
			
		
			
				
	
	
		
			24 lines
		
	
	
		
			478 B
		
	
	
	
		
			Go
		
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			478 B
		
	
	
	
		
			Go
		
	
	
package stats
 | 
						|
 | 
						|
import "sync/atomic"
 | 
						|
 | 
						|
// Counter is an implementation of stats.Counter.
 | 
						|
type Counter struct {
 | 
						|
	value int64
 | 
						|
}
 | 
						|
 | 
						|
// Value implements stats.Counter.
 | 
						|
func (c *Counter) Value() int64 {
 | 
						|
	return atomic.LoadInt64(&c.value)
 | 
						|
}
 | 
						|
 | 
						|
// Set implements stats.Counter.
 | 
						|
func (c *Counter) Set(newValue int64) int64 {
 | 
						|
	return atomic.SwapInt64(&c.value, newValue)
 | 
						|
}
 | 
						|
 | 
						|
// Add implements stats.Counter.
 | 
						|
func (c *Counter) Add(delta int64) int64 {
 | 
						|
	return atomic.AddInt64(&c.value, delta)
 | 
						|
}
 |