internal void InitializeSearchData(int groupIndex, Dictionary <int, float>[] allMemberRatings) { const int matchBufferCapacity = 64; var memberIndices = MemberIndices[groupIndex]; // handles modify case if (SearchData[groupIndex] != null) { SearchData[groupIndex].Dispose(); } SearchData[groupIndex] = new GroupSearchData(matchBufferCapacity, memberIndices, allMemberRatings); }
protected void DirGroupsReplyHandler(Packet packet, Simulator simulator) { if (OnDirGroupsReply != null) { DirGroupsReplyPacket groupsReply = packet as DirGroupsReplyPacket; List <GroupSearchData> matches = new List <GroupSearchData>(groupsReply.QueryReplies.Length); foreach (DirGroupsReplyPacket.QueryRepliesBlock reply in groupsReply.QueryReplies) { GroupSearchData groupsData = new GroupSearchData(); groupsData.GroupID = reply.GroupID; groupsData.GroupName = Helpers.FieldToUTF8String(reply.GroupName); groupsData.Members = reply.Members; matches.Add(groupsData); } try { OnDirGroupsReply(groupsReply.QueryData.QueryID, matches); } catch (Exception e) { Logger.Log(e.Message, Helpers.LogLevel.Error, Client, e); } } }
/// <summary>Process an incoming packet and raise the appropriate events</summary> /// <param name="sender">The sender</param> /// <param name="e">The EventArgs object containing the packet data</param> protected void DirGroupsReplyHandler(object sender, PacketReceivedEventArgs e) { if (m_DirGroups != null) { Packet packet = e.Packet; DirGroupsReplyPacket groupsReply = (DirGroupsReplyPacket)packet; List<GroupSearchData> matches = new List<GroupSearchData>(groupsReply.QueryReplies.Length); foreach (DirGroupsReplyPacket.QueryRepliesBlock reply in groupsReply.QueryReplies) { GroupSearchData groupsData = new GroupSearchData(); groupsData.GroupID = reply.GroupID; groupsData.GroupName = Utils.BytesToString(reply.GroupName); groupsData.Members = reply.Members; matches.Add(groupsData); } OnDirGroups(new DirGroupsReplyEventArgs(groupsReply.QueryData.QueryID, matches)); } }
protected void DirGroupsReplyHandler(Packet packet, Simulator simulator) { if (OnDirGroupsReply != null) { DirGroupsReplyPacket groupsReply = packet as DirGroupsReplyPacket; List<GroupSearchData> matches = new List<GroupSearchData>(groupsReply.QueryReplies.Length); foreach (DirGroupsReplyPacket.QueryRepliesBlock reply in groupsReply.QueryReplies) { GroupSearchData groupsData = new GroupSearchData(); groupsData.GroupID = reply.GroupID; groupsData.GroupName = Helpers.FieldToUTF8String(reply.GroupName); groupsData.Members = reply.Members; matches.Add(groupsData); } try { OnDirGroupsReply(groupsReply.QueryData.QueryID, matches); } catch (Exception e) { Client.Log(e.ToString(), Helpers.LogLevel.Error); } } }