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);
        }
Exemplo n.º 2
0
 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));
            }
        }
Exemplo n.º 4
0
 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); }
     }
 }