Пример #1
0
 public IEnumerator <T> GetEnumerator()
 {
     return(_results.GetEnumerator());
 }
Пример #2
0
 /// <summary>
 /// Return the enumerator on internal hint collection
 /// </summary>
 /// <returns></returns>
 public IEnumerator GetEnumerator()
 {
     return(_hints.GetEnumerator());
 }
Пример #3
0
        private void AckStateTransferCompeleted(ArrayList bucketIds)
        {
            if (_isTransferCompleted)
            {
                LoggerManager.Instance.StateXferLogger.Info("AckStateTransferCompeleted", "State Transfer Ended " + bucketIds[0]);
            }

            switch (CorresponderIdentity.DistributionType)
            {
            case Common.Toplogies.Impl.Distribution.DistributionMethod.HashDistribution:
            case Common.Toplogies.Impl.Distribution.DistributionMethod.RangeDistribution:
            case Common.Toplogies.Impl.Distribution.DistributionMethod.TagDistribution:
            {
                try
                {
                    IEnumerator ie = bucketIds.GetEnumerator();

                    while (ie.MoveNext())
                    {
                        //muds:
                        //remove this bucket from the local buckets.
                        //this bucket has been transfered to some other node.
                        /// Remove the bucket if this node is no longer owner of this bucket.
                        int bucketId = (int)ie.Current;

                        //if (!VerifyFinalOwnership(bucketId, new NodeIdentity(Context.LocalShardName, Context.LocalAddress)))
                        {
                            lock (transferedBuckets)
                            {
                                IEnumerable <DocumentKey> bucketKeys = new ClusteredList <DocumentKey>(_currentBucketkeys);      //GetBucketKeys(bucketId, false).Clone() as ClusteredList<DocumentKey>;
                                transferedBuckets.Enqueue(new BucketRemovalInfo(corresponderIdentity.DBName, corresponderIdentity.ColName, bucketId, bucketKeys.GetEnumerator()));
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    LoggerManager.Instance.StateXferLogger.Error("AckStateTransferCompeleted.BucketKeysEnumerator", ex.Message);
                }
            }
            break;

            case Common.Toplogies.Impl.Distribution.DistributionMethod.NonShardedDistribution:
                try
                {
                    lock (transferedBuckets)
                    {
                        IEnumerable <DocumentKey> bucketKeys = new ClusteredList <DocumentKey>(_currentBucketkeys);
                        //GetBucketKeys(bucketId, false).Clone() as ClusteredList<DocumentKey>;
                        transferedBuckets.Enqueue(new CollectionRemvoalInfo(CorresponderIdentity.DBName, CorresponderIdentity.ColName));
                    }
                }
                catch (Exception)
                {
                }
                break;
            }
        }