示例#1
0
        /// <summary>
        /// Find all entries in the response list that are not null and didnt timeout.
        /// </summary>
        /// <param name="results">response list</param>
        /// <param name="type">type of response to fetch</param>
        /// <returns>List of entries found</returns>
        public static IList GetAllNonNullRsp(RspList results, Type type)
        {
            IList list = new ClusteredArrayList();

            if (results == null)
            {
                return(null);
            }

            Rsp         rsp        = null;
            IList <Rsp> removeRsps = null;

            for (int i = 0; i < results.size(); i++)
            {
                rsp = (Rsp)results.elementAt(i);

                if (rsp.wasSuspected() || !rsp.wasReceived())
                {
                    if (removeRsps == null)
                    {
                        removeRsps = new List <Rsp>();
                    }
                    removeRsps.Add(rsp);
                    continue;
                }

                if (rsp.Value != null && rsp.Value.GetType().Equals(type))
                {
                    list.Add(rsp);
                }
            }

            if (removeRsps != null && removeRsps.Count > 0)
            {
                foreach (Rsp r in removeRsps)
                {
                    results.removeRsp(r);
                }
            }

            return(list);
        }