rename token bucket

pull/1699/head
Thibault Duplessis 2016-03-07 12:03:40 +07:00
parent 2837b689b6
commit e68db75cee
4 changed files with 8 additions and 8 deletions

View File

@ -10,7 +10,7 @@ import play.api.mvc.WebSocket.FrameFormatter
import play.twirl.api.Html
import scalaz.Monoid
import lila.api.{ PageData, Context, HeaderContext, BodyContext, TokenBucketGroup }
import lila.api.{ PageData, Context, HeaderContext, BodyContext, TokenBucket }
import lila.app._
import lila.common.{ LilaCookie, HTTPRequest }
import lila.security.{ Permission, Granter, FingerprintedUser }
@ -59,7 +59,7 @@ private[controllers] trait LilaController
}
}
protected def SocketOptionLimited[A: FrameFormatter](consumer: TokenBucketGroup.Consumer)(f: Context => Fu[Option[(Iteratee[A, _], Enumerator[A])]]) =
protected def SocketOptionLimited[A: FrameFormatter](consumer: TokenBucket.Consumer)(f: Context => Fu[Option[(Iteratee[A, _], Enumerator[A])]]) =
LilaSocket.rateLimited[A](consumer) { req =>
reqToCtx(req) flatMap f map {
case None => Left(NotFound(jsonError("socket resource not found")))

View File

@ -6,7 +6,7 @@ import play.api.libs.json._
import play.api.mvc._, Results._
import play.api.mvc.WebSocket.FrameFormatter
import lila.api.TokenBucketGroup
import lila.api.TokenBucket
import lila.app._
import lila.common.HTTPRequest
@ -16,7 +16,7 @@ object LilaSocket {
private val logger = play.api.Logger("ratelimit")
def rateLimited[A: FrameFormatter](consumer: TokenBucketGroup.Consumer)(f: AcceptType[A]): WebSocket[A, A] =
def rateLimited[A: FrameFormatter](consumer: TokenBucket.Consumer)(f: AcceptType[A]): WebSocket[A, A] =
WebSocket[A, A] { req =>
val ip = HTTPRequest lastRemoteAddress req
f(req).map { resultOrSocket =>

View File

@ -41,7 +41,7 @@ object Lobby extends LilaController {
)
}
private val socketConsumer = lila.api.TokenBucketGroup.create(
private val socketConsumer = lila.api.TokenBucket.create(
system = lila.common.PlayApp.system,
size = 10,
rate = 5)

View File

@ -38,7 +38,7 @@ private case class TokenRequest(key: Any)
* @param rate refill rate in tokens per second
* @param clock for mocking the current time.
*/
private class TokenBucketGroup(size: Int, rate: Float, clock: Clock) extends Actor {
private class TokenBucket(size: Int, rate: Float, clock: Clock) extends Actor {
private val intervalMillis: Int = (1000 / rate).toInt
@ -75,7 +75,7 @@ private class TokenBucketGroup(size: Int, rate: Float, clock: Clock) extends Act
}
}
object TokenBucketGroup {
object TokenBucket {
private val defaultTimeout = Timeout(100, TimeUnit.MILLISECONDS)
@ -101,7 +101,7 @@ object TokenBucketGroup {
require(size <= 1000)
require(rate >= 0.000001f)
require(rate <= 1000)
new Consumer(system.actorOf(Props(new TokenBucketGroup(size, rate, clock))))
new Consumer(system.actorOf(Props(new TokenBucket(size, rate, clock))))
}
/**