private void ValidatePEnumerator()
        {
            int invalidEnumerators = 0;

            do
            {
                //if loop is iterated more times than _partitionedEnumerator's size, break the loop
                if (invalidEnumerators >= _partitionedEnumerators.Count)
                {
                    break;
                }

                if (_partitionedEnumerators != null || _partitionedEnumerators.Count != 0)
                {
                    _roundRobinIndexer            = (++_roundRobinIndexer) % _partitionedEnumerators.Count;
                    _currentPartitionedEnumerator = _partitionedEnumerators[_roundRobinIndexer];

                    if (!_currentPartitionedEnumerator.IsValid)
                    {
                        invalidEnumerators++;
                    }
                    else
                    {
                        _isValid = true;
                        break;
                    }
                }
            } while (true);
        }
        public TaskEnumerator(List <Common.MapReduce.TaskEnumeratorResult> enumeratorResultSet,
                              TaskEnumeratorHandler remoteCache)
        {
            _partitionedEnumerators = new List <TaskPartitionedEnumerator>();
            foreach (Common.MapReduce.TaskEnumeratorResult result in enumeratorResultSet)
            {
                TaskPartitionedEnumerator mrResultPEnumerator = new TaskPartitionedEnumerator(remoteCache,
                                                                                              result.Pointer,
                                                                                              result.RecordSet,
                                                                                              result.NodeAddress,
                                                                                              result.IsLastResult);
                _partitionedEnumerators.Add(mrResultPEnumerator);
            }

            ValidatePEnumerator();
        }