scala枚举以获取长度
我有一个Enumerate.map[Array[Byte]]和scalascala枚举以获取长度,scala,playframework,playframework-2.0,scala-2.10,scala-2.8,Scala,Playframework,Playframework 2.0,Scala 2.10,Scala 2.8,我有一个Enumerate.map[Array[Byte]]和scala class AccessLog extends EssentialFilter { def apply(next: EssentialAction) = new EssentialAction { lazy val processor: RequestStatsProcessor = RequestStatsProcessor.getInstance def apply(rh: RequestHeade
class AccessLog extends EssentialFilter {
def apply(next: EssentialAction) = new EssentialAction {
lazy val processor: RequestStatsProcessor = RequestStatsProcessor.getInstance
def apply(rh: RequestHeader) = {
val start = System.currentTimeMillis
def writeableEnumeratee[A](writeable: Writeable[A]): Enumeratee[A, Array[Byte]] = Enumeratee.map(a => writeable.transform(a))
var size: Long = 0;
def logTime(response: PlainResult): Result = response match {
case simple @ SimpleResult(header, body) => {
val time = System.currentTimeMillis - start
val en = Enumeratee.map[Array[Byte]] { item =>
size = size + item.length
var requestInfo: RequestInfo = new RequestInfo(start, rh, response, size)
processor.setRequest(requestInfo)
processor.process
item
}
SimpleResult(header, body &> writeableEnumeratee(simple.writeable) &> en)
}
case _ => response
}
next(rh).map {
case plain: PlainResult => logTime(plain)
case async: AsyncResult => async.transform(logTime)
}
}
}
}
如果我这样写,我会得到数组的每个长度[字节],但不是映射中的总大小
如何获得总长度?我对您的代码有一个问题。。。什么是
尺寸
和a
?它们来自哪里?它们的目的是什么?我之所以这样问,是因为它们似乎不知从何而来,因为它们不在您的声明范围内map@Electric咖啡嗨,我更新我的问题。请你再看看更新后的帖子好吗?我还是找不到a
在哪里declared@Electric咖啡我把a项改成了a项,这样你会发现它更简单。请帮忙,这个问题会从最小化中受益匪浅,很难说出你在问什么。