Exemplo n.º 1
0
        public SCG.IReadOnlyDictionary <Guid, bool> TestPacketIdsAreNew(IReadOnlySet <Guid> queryIds)
        {
            return(queryIds.ToDictionary(
                       q => q,
                       seenIds.TryAdd));

//         var results = new SCG.Dictionary<Guid, bool>();
//
//         HashSet<Guid> newIdCandidates = new HashSet<Guid>();
//         foreach (var queryId in queryIds) {
//            if (seenIds.Contains(queryId)) {
//               results[queryId] = false;
//            } else {
//               newIdCandidates.Add(queryId);
//            }
//         }
//
//         lock (synchronization) {
//            var nextSeenIds = new HashSet<Guid>(seenIds);
//            foreach (var queryId in newIdCandidates) {
//               results[queryId] = nextSeenIds.Add(queryId);
//            }
//            seenIds = nextSeenIds;
//         }
//
//         return results;
        }
Exemplo n.º 2
0
      public SCG.IReadOnlyDictionary<Guid, bool> TestPacketIdsAreNew(IReadOnlySet<Guid> queryIds) {
         return queryIds.ToDictionary(
            q => q,
            seenIds.TryAdd);

//         var results = new SCG.Dictionary<Guid, bool>();
//
//         HashSet<Guid> newIdCandidates = new HashSet<Guid>();
//         foreach (var queryId in queryIds) {
//            if (seenIds.Contains(queryId)) {
//               results[queryId] = false;
//            } else {
//               newIdCandidates.Add(queryId);
//            }
//         }
//
//         lock (synchronization) {
//            var nextSeenIds = new HashSet<Guid>(seenIds);
//            foreach (var queryId in newIdCandidates) {
//               results[queryId] = nextSeenIds.Add(queryId);
//            }
//            seenIds = nextSeenIds;
//         }
//
//         return results;
      }