cindy源码阅读(3)encode和decode

先来看看类图:

[img]http://dl.iteye.com/upload/attachment/0084/2384/6a00acb6-bee7-35c0-b6b0-845863d91343.png[/img]

[size=medium]可以看到解码和编码是对应的。解码导入实现了PacketDecoder ,编码都实现了PacketEncoder。这个和我上一篇文章说的传输的基础是packet是对应的。
编码分别是转换成Buffer,byte[],ByteBuffer,对象,Packet。解码也有对应的解码。注意这里的buffer是cindy自己定义的buffer。
当然这些编码和解码为了扩展,还有chain类。PacketEncoderChain,PacketDecoderChain。

时间的过程中很少上面这些。cindy的举例hello worl用到了SerialEncoder。这个是对象的。但是这个对象没有确定具体的类,我们只能使用object的东西。
实际中我们的编码和解码一般是写在model的类中,更类似这样的:[/size]
public class Model{

private short userLiveId;

public short getUserLiveId() {
return userLiveId;
}

public void setUserLiveId(short userLiveId) {
this.userLiveId = userLiveId;
}


protected void encode(ByteBuffer buffer) {

buffer.putShort(userLiveId);
}


protected void decode(ByteBuffer buffer) throws Exception {

userLiveId = buffer.getShort();
}


也就是说,我们时间传输的是个pocket,pocket包含Buffer,我们是从这个buffer中,几个字节几个字节那样解码出对象的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值