@@ -32,69 +32,57 @@ object MySQLOneToOneEncoder {
3232 val log = Log .get[MySQLOneToOneEncoder ]
3333}
3434
35- class MySQLOneToOneEncoder (charset : Charset , charsetMapper : CharsetMapper ) extends MessageToMessageEncoder [Any ] {
35+ class MySQLOneToOneEncoder (charset : Charset , charsetMapper : CharsetMapper )
36+ extends MessageToMessageEncoder [ClientMessage ](classOf [ClientMessage ]) {
3637
3738 import MySQLOneToOneEncoder .log
3839
3940 private final val handshakeResponseEncoder = new HandshakeResponseEncoder (charset, charsetMapper)
4041 private final val queryEncoder = new QueryMessageEncoder (charset)
4142 private final val rowEncoder = new BinaryRowEncoder (charset)
4243 private final val prepareEncoder = new PreparedStatementPrepareEncoder (charset)
43- private final val sendLongDataEncoder = new SendLongDataEncoder (rowEncoder)
4444 private final val executeEncoder = new PreparedStatementExecuteEncoder (rowEncoder)
4545 private final val authenticationSwitchEncoder = new AuthenticationSwitchResponseEncoder (charset)
4646
4747 private var sequence = 1
4848
49- def isLong (value : Any ): Boolean = rowEncoder.encoderFor(value).isLong(value)
50-
51- def encode (ctx : ChannelHandlerContext , msg : Any , out : java.util.List [Object ]): Unit = {
52-
53- msg match {
54- case message : ClientMessage => {
55- val encoder = (message.kind: @ switch) match {
56- case ClientMessage .ClientProtocolVersion => this .handshakeResponseEncoder
57- case ClientMessage .Quit => {
58- sequence = 0
59- QuitMessageEncoder
60- }
61- case ClientMessage .Query => {
62- sequence = 0
63- this .queryEncoder
64- }
65- case ClientMessage .PreparedStatementExecute => {
66- sequence = 0
67- this .executeEncoder
68- }
69- case ClientMessage .PreparedStatementPrepare => {
70- sequence = 0
71- this .prepareEncoder
72- }
73- case ClientMessage .PreparedStatementSendLongData => {
74- sequence = 0
75- this .sendLongDataEncoder
76- }
77- case ClientMessage .AuthSwitchResponse => {
78- sequence += 1
79- this .authenticationSwitchEncoder
80- }
81- case _ => throw new EncoderNotAvailableException (message)
82- }
83-
84- val result = encoder.encode(message)
49+ def encode (ctx : ChannelHandlerContext , message : ClientMessage , out : java.util.List [Object ]): Unit = {
50+ val encoder = (message.kind: @ switch) match {
51+ case ClientMessage .ClientProtocolVersion => this .handshakeResponseEncoder
52+ case ClientMessage .Quit => {
53+ sequence = 0
54+ QuitMessageEncoder
55+ }
56+ case ClientMessage .Query => {
57+ sequence = 0
58+ this .queryEncoder
59+ }
60+ case ClientMessage .PreparedStatementExecute => {
61+ sequence = 0
62+ this .executeEncoder
63+ }
64+ case ClientMessage .PreparedStatementPrepare => {
65+ sequence = 0
66+ this .prepareEncoder
67+ }
68+ case ClientMessage .AuthSwitchResponse => {
69+ sequence += 1
70+ this .authenticationSwitchEncoder
71+ }
72+ case _ => throw new EncoderNotAvailableException (message)
73+ }
8574
86- ByteBufferUtils .writePacketLength(result, sequence )
75+ val result : ByteBuf = encoder.encode(message )
8776
88- sequence += 1
77+ ByteBufferUtils .writePacketLength(result, sequence)
8978
90- if ( log.isTraceEnabled ) {
91- log.trace(s " Writing message ${message.getClass.getName} - \n ${BufferDumper .dumpAsHex(result)}" )
92- }
79+ sequence += 1
9380
94- out.add(result)
95- }
81+ if ( log.isTraceEnabled ) {
82+ log.trace( s " Writing message ${message.getClass.getName} - \n ${ BufferDumper .dumpAsHex(result)} " )
9683 }
9784
85+ out.add(result)
9886 }
9987
10088}
0 commit comments