github.com/Cloud-Foundations/Dominator@v0.3.4/lib/srpc/serverutil/api.go (about) 1 package serverutil 2 3 import ( 4 "sync" 5 6 "github.com/Cloud-Foundations/Dominator/lib/srpc" 7 ) 8 9 type PerUserMethodLimiter struct { 10 mutex sync.Mutex 11 perUserMethodCounts map[userMethodType]uint 12 perUserMethodLimits map[string]uint 13 } 14 15 type userMethodType struct { 16 method string 17 username string 18 } 19 20 func NewPerUserMethodLimiter( 21 perUserMethodLimits map[string]uint) *PerUserMethodLimiter { 22 return newPerUserMethodLimiter(perUserMethodLimits) 23 } 24 25 func (limiter *PerUserMethodLimiter) BlockMethod(methodName string, 26 authInfo *srpc.AuthInformation) (func(), error) { 27 return limiter.blockMethod(methodName, authInfo) 28 }