protected override void ParseBody(ByteBuffer buf) { // 当前好友列表位置 Finished = buf.Get() == QQGlobal.QQ_POSITION_ONLINE_LIST_END; Position = 0; //只要还有数据就继续读取下一个friend结构 OnlineFriends = new List <FriendOnlineEntry>(); while (buf.HasRemaining()) { FriendOnlineEntry entry = new FriendOnlineEntry(); entry.Read(buf); // 添加到List OnlineFriends.Add(entry); // 如果还有更多好友,计算position if (!Finished) { Position = Math.Max(Position, (int)entry.Status.QQ); } } Position++; }
/// <summary>设置好友为上线状态 /// <remark>abu 2008-03-11 </remark> /// </summary> /// <param name="qq">The qq.</param> /// <param name="onlineEntry">The online entry.</param> public void SetFriendOnline(int qq, FriendOnlineEntry onlineEntry) { this[qq].Status = onlineEntry.Status; this.Onlines++; }