package com.cgcl.cloudesk.manage.packet;
import com.cgcl.cloudesk.manage.com.Guid;
import com.cgcl.cloudesk.manage.com.Serializable;
import com.cgcl.cloudesk.manage.config.PacketConfig;
import com.cgcl.cloudesk.manage.util.Serializer;
public abstract class PacketBase implements Serializable {
private int magic = PacketConfig.kDefaultMagic;
private char version = PacketConfig.kCurrentVersion;
private int len = PacketConfig.kPacketBaseLen;
private char type = (char)0;
private char moduleId = PacketConfig.kDefaultModuleId;
private Guid guid = PacketConfig.kDefaultGuid;
private int reference = PacketConfig.kDefaultReference;
public PacketBase(char type, char moduleId)
{
this.len = PacketConfig.kPacketBaseLen;
this.type = type;
this.moduleId = moduleId;
}
public Guid getGuid() {
return guid;
}
public void setGuid(Guid guid) {
this.guid = guid;
}
public int getLen() {
return len;
}
public void setLen(int len) {
this.len = len;
}
public int getMagic() {
return magic;
}
public void setMagic(int magic) {
this.magic = magic;
}
public char getModuleId() {
return moduleId;
}
public void setModuleId(char moduleId) {
this.moduleId = moduleId;
}
public int getReference() {
return reference;
}
public void setReference(int reference) {
this.reference = reference;
}
public char getType() {
return type;
}
public void setType(char type) {
this.type = type;
}
public char getVersion() {
return version;
}
public void setVersion(char version) {
this.version = version;
}
public int deserialize(byte[] buf, int offset) {
magic = Serializer.deserializeInt(buf, offset + PacketConfig.kMagicPos);
version = Serializer.deserializeChar(buf, offset + PacketConfig.kVersionPos);
len = Serializer.deserializeInt(buf, offset + PacketConfig.kLenPos);
type = Serializer.deserializeChar(buf, offset + PacketConfig.kTypePos);
moduleId = Serializer.deserializeChar(buf, offset + PacketConfig.kModuleIdPos);
guid.deserialize(buf, offset + PacketConfig.kGuidPos);
return PacketConfig.kPacketBaseLen;
}
public int serialize(byte[] buf, int offset) {
Serializer.serialize(buf, offset + PacketConfig.kMagicPos, magic);
Serializer.serialize(buf, offset + PacketConfig.kVersionPos, version);
Serializer.serialize(buf, offset + PacketConfig.kLenPos, len);
Serializer.serialize(buf, offset + PacketConfig.kTypePos, type);
Serializer.serialize(buf, offset + PacketConfig.kModuleIdPos, moduleId);
guid.serialize(buf, offset + PacketConfig.kGuidPos);
return PacketConfig.kPacketBaseLen;
}
public int length() {
return PacketConfig.kPacketBaseLen;
}
}