Fixing ticket 89
This commit is contained in:
parent
fb98c64c0c
commit
c78e24ee52
1 changed files with 18 additions and 16 deletions
|
|
@ -131,6 +131,8 @@ class RemoteServer extends Logging {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case class Codec(encoder : ChannelHandler,decoder : ChannelHandler)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||||
*/
|
*/
|
||||||
|
|
@ -141,23 +143,23 @@ class RemoteServerPipelineFactory(
|
||||||
import RemoteServer._
|
import RemoteServer._
|
||||||
|
|
||||||
def getPipeline: ChannelPipeline = {
|
def getPipeline: ChannelPipeline = {
|
||||||
val pipeline = Channels.pipeline()
|
|
||||||
RemoteServer.COMPRESSION_SCHEME match {
|
val lenDec = new LengthFieldBasedFrameDecoder(1048576, 0, 4, 0, 4)
|
||||||
case "zlib" => pipeline.addLast("zlibDecoder", new ZlibDecoder)
|
val lenPrep = new LengthFieldPrepender(4)
|
||||||
//case "lzf" => pipeline.addLast("lzfDecoder", new LzfDecoder)
|
val protobufDec = new ProtobufDecoder(RemoteRequest.getDefaultInstance)
|
||||||
case _ => {} // no compression
|
val protobufEnc = new ProtobufEncoder
|
||||||
|
val remoteServer = new RemoteServerHandler(name, openChannels, loader)
|
||||||
|
|
||||||
|
val zipcodec = RemoteServer.COMPRESSION_SCHEME match {
|
||||||
|
case "zlib" => Some(Codec(new ZlibEncoder(RemoteServer.ZLIB_COMPRESSION_LEVEL),new ZlibDecoder))
|
||||||
|
//case "lzf" => Some(Codec(new LzfEncoder, new LzfDecoder))
|
||||||
|
case _ => None
|
||||||
}
|
}
|
||||||
pipeline.addLast("frameDecoder", new LengthFieldBasedFrameDecoder(1048576, 0, 4, 0, 4))
|
|
||||||
pipeline.addLast("protobufDecoder", new ProtobufDecoder(RemoteRequest.getDefaultInstance))
|
val stages : Array[ChannelHandler] = zipcodec.map( z => Array(z.decoder,lenDec,protobufDec,z.encoder,lenPrep,protobufEnc,remoteServer) )
|
||||||
RemoteServer.COMPRESSION_SCHEME match {
|
.getOrElse(Array(lenDec,protobufDec,lenPrep,protobufEnc,remoteServer))
|
||||||
case "zlib" => pipeline.addLast("zlibEncoder", new ZlibEncoder(RemoteServer.ZLIB_COMPRESSION_LEVEL))
|
|
||||||
//case "lzf" => pipeline.addLast("lzfEncoder", new LzfEncoder)
|
new StaticChannelPipeline(stages:_*)
|
||||||
case _ => {} // no compression
|
|
||||||
}
|
|
||||||
pipeline.addLast("frameEncoder", new LengthFieldPrepender(4))
|
|
||||||
pipeline.addLast("protobufEncoder", new ProtobufEncoder)
|
|
||||||
pipeline.addLast("handler", new RemoteServerHandler(name, openChannels, loader))
|
|
||||||
pipeline
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue