JML

net.sf.jqql.packets.in
Class SignatureOpReplyPacket

java.lang.Object
  extended by net.sf.jqql.packets.Packet
      extended by net.sf.jqql.packets.InPacket
          extended by net.sf.jqql.packets.BasicInPacket
              extended by net.sf.jqql.packets.in.SignatureOpReplyPacket

public class SignatureOpReplyPacket
extends BasicInPacket

 reply packet of signature operate
 1 .header
 2. subcommand, 1 byte
 3. reply code, 1 byte
 
 if part 2 is 0x00, 0x01, then
 4.tail
 
 if part 2 is 0x02, get signature,and also
 5. QQ nubmer, 4 byte
 6. last reworked time, 4 byte. this reworked time's use is decreasing network I/O, only first time we need
    to get all signature, since we only send siganature, then server will compare last reworked time, only reworked
    send back
 7. byte length of signature, 1 byte
 8. signature
 9. if have moer, repeat part 5-8
 10. tail 
 个性签名操作的回复包
 1. 头部
 2. 子命令,1字节
 3. 回复码,1字节
 
 如果2部分为0x00, 0x01,则
 4. 尾部
 
 如果2部分为0x02,即得到个性签名,则还有
 4. 下一个起始的QQ号,4字节。为这个回复包中所有QQ号的最大值加1
 5. QQ号,4字节
 6. 个性签名最后修改时间,4字节。这个修改时间的用处在于减少网络I/O,只有第一次我们需要
    得到所有的个性签名,以后我们只要送出个性签名,然后服务器会比较最后修改时间,修改过的
    才发回来
 7. 个性签名字节长度,1字节
 8. 个性签名
 9. 如果有更多,重复5-8部分
 10. 尾部
 

Author:
luma

Field Summary
 int nextQQ
           
 byte replyCode
           
 List<Signature> signatures
           
 byte subCommand
           
 
Fields inherited from class net.sf.jqql.packets.Packet
bodyBuf, bodyDecrypted, command, crypter, ds, duplicated, header, log, sequence, source, user
 
Constructor Summary
SignatureOpReplyPacket(ByteBuffer buf, int length, QQUser user)
           
 
Method Summary
 String getPacketName()
           
protected  void parseBody(ByteBuffer buf)
          parse packet body, from begin position of buf 解析包体,从buf的开头位置解析起
 
Methods inherited from class net.sf.jqql.packets.BasicInPacket
decryptBody, encryptBody, getBodyBytes, getCryptographStart, getFamily, getHeadLength, getLength, getTailLength, parseHeader, parseTail, putBody, putHead, putTail, toString
 
Methods inherited from class net.sf.jqql.packets.InPacket
validateHeader
 
Methods inherited from class net.sf.jqql.packets.Packet
dump, equals, getCommand, getHeader, getSequence, getSource, hash, hashCode, isDuplicated, setDuplicated, setHeader, setSequence
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

subCommand

public byte subCommand

replyCode

public byte replyCode

nextQQ

public int nextQQ

signatures

public List<Signature> signatures
Constructor Detail

SignatureOpReplyPacket

public SignatureOpReplyPacket(ByteBuffer buf,
                              int length,
                              QQUser user)
                       throws PacketParseException
Throws:
PacketParseException
Method Detail

parseBody

protected void parseBody(ByteBuffer buf)
                  throws PacketParseException
Description copied from class: Packet
parse packet body, from begin position of buf 解析包体,从buf的开头位置解析起

Specified by:
parseBody in class Packet
Parameters:
buf - ByteBuffer
Throws:
PacketParseException - if parse error 如果解析出错

getPacketName

public String getPacketName()
Overrides:
getPacketName in class BasicInPacket
Returns:
descriptive name of packet 包的描述性名称

JML