📄 serialencoder.java
字号:
/****************************************************************************
* Package : com.ecSolutions.ecAppServer.server.encoder
* File : SerialEncoder.java
* Create Date : 2007-7-20
* Author : Steven Chen
*
* Copyright(C) 2006 ecSolutions(shanghai) Co.,Limited.All Rights Reserved.
*
***************************************************************************/
package com.ecSolutions.ecAppServer.server.encoder;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.Serializable;
import java.nio.ByteBuffer;
import com.ecSolutions.ecAppServer.server.Packet;
import com.ecSolutions.ecAppServer.server.PacketEncoder;
import com.ecSolutions.ecAppServer.server.Session;
import com.ecSolutions.ecAppServer.server.buffer.BufferBuilder;
import com.ecSolutions.ecAppServer.server.packet.DefaultPacket;
/**
* Encode serial object to <code>Packet</code>.
*
* @author Steven Chen
* @version $Id: SerialEncoder.java,v 1.2 2007/07/26 03:19:40 stevenchen Exp $
*/
public class SerialEncoder implements PacketEncoder {
public Packet encode(Session session, Object obj) throws Exception {
if (obj instanceof Serializable) {
final BufferBuilder builder = new BufferBuilder();
try {
ObjectOutputStream oos = new ObjectOutputStream(
new OutputStream() {
public void write(int b) {
builder.append((byte) b);
}
public void write(byte[] b, int off, int len) {
builder.append(ByteBuffer.wrap(b, off, len));
}
});
oos.writeUnshared(obj);
oos.close();
return new DefaultPacket(builder.toBuffer());
} finally {
builder.release();
}
}
return null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -