public IEnumerable <KeyValuePair <TKey, TValue> > CreateEnumerable(EnumerationMode enumerationMode)
        {
            if (enumerationMode == EnumerationMode.Ordered)
            {
                return(this.OrderBy(x => x.Key));
            }

            return(this);
        }
Exemple #2
0
 public Task <Fabric.IAsyncEnumerable <KeyValuePair <TKey, TValue> > > CreateEnumerableAsync(
     ITransaction txn, Func <TKey, bool> filter, EnumerationMode enumerationMode)
 {
     return(Task.FromResult <Fabric.IAsyncEnumerable <KeyValuePair <TKey, TValue> > >(
                new MockAsyncEnumerable <KeyValuePair <TKey, TValue> >(
                    enumerationMode == EnumerationMode.Unordered
                 ? this.dictionary.Where(x => filter(x.Key))
                 : this.dictionary.Where(x => filter(x.Key)).OrderBy(x => x.Key))));
 }
Exemple #3
0
 internal SampleListEnumerator(SampleList sampleList, int index, int count, EnumerationMode mode)
 {
     this.sampleList = sampleList;
     this.index      = index;
     this.startIndex = index;
     this.endIndex   = index + count;
     this.mode       = mode;
     //this.current = false;
 }
 internal HashListEnumerator(HashList hashList, EnumerationMode mode)
 {
     _hashList  = hashList;
     _mode      = mode;
     _version   = hashList._version;
     _orderList = hashList._insertionOrderList;
     _index     = 0;
     _key       = null;
     _value     = null;
 }
Exemple #5
0
			internal HashListEnumerator(HashList hashList, EnumerationMode mode)
			{
				_hashList = hashList;
				_mode = mode;
				_version = hashList._version;
				_orderList = hashList._insertionOrderList;
				_index = 0;
				_key = null;
				_value = null;
			}
        public static EnumerateResponse StartEnumeration(this IMessageBuilder messageBuilder, Filter filter, EnumerationMode enumerationMode, bool optimize, out IMessageBuilder nextMessageBuilder)
        {
            var responseMessage = messageBuilder
                .WithAction(Constants.EnumerateAction)               
                .AddBody(new EnumerateRequest
                             {
                                 EnumerationMode = enumerationMode,
                                 OptimizeEnumeration = optimize ? new OptimizeEnumeration() : null,
                                 Filter = filter,
                             })
                .SendAndGetResponse(out nextMessageBuilder);

            return responseMessage.GetPayload<EnumerateResponse>();
        }
 public void ReadXml(XmlReader reader)
 {
     if (reader.Name() == ItemElementName)
     {
         _mode = EnumerationMode.EnumerateObjectAndEPR;
         reader.ReadStartElement(ItemElementName);
         _rawValue = reader.ReadOuterXml();
     }
     _eprValue = new EndpointReference();
     _eprValue.ReadOuterXml(reader);
     if (IncludeObject())
     {
         reader.ReadEndElement();
     }
 }
 public void ReadXml(XmlReader reader)
 {
     if (reader.Name() == ItemElementName)
     {
         _mode = EnumerationMode.EnumerateObjectAndEPR;
         reader.ReadStartElement(ItemElementName);
         _rawValue = reader.ReadOuterXml();
     }
     _eprValue = new EndpointReference();
     _eprValue.ReadOuterXml(reader);
     if (IncludeObject())
     {
         reader.ReadEndElement();
     }
 }
        public IEnumerator <T> GetEnumeratorStack(EnumerationMode enumerationMode)
        {
            if (this.IsEmpty)
            {
                throw new InvalidOperationException();
            }

            return(enumerationMode switch
            {
                EnumerationMode.PreOrder => this.GetEnumeratorPreOrderStack(),
                EnumerationMode.InOrder => this.GetEnumeratorInOrderStack(),
                EnumerationMode.PostOrder => this.GetEnumeratorPostOrderStack(),

                // In this case we need to use queue.
                EnumerationMode.LevelOrder => this.GetEnumeratorLevelOrderQueue(),

                _ => throw new ArgumentException(nameof(enumerationMode)),
            });
 public Task <IAsyncEnumerable <KeyValuePair <TKey, TValue> > > CreateEnumerableAsync(ITransaction txn, EnumerationMode enumerationMode)
 {
     return(Task.FromResult <IAsyncEnumerable <KeyValuePair <TKey, TValue> > >(
                new MockAsyncEnumerable <KeyValuePair <TKey, TValue> >(
                    enumerationMode == EnumerationMode.Unordered
                 ? (IEnumerable <KeyValuePair <TKey, TValue> >) this.dictionary
                 : this.dictionary.OrderBy(x => x.Key))));
 }
Exemple #11
0
 public EnumerationState(IEnumerator<object> enumerator, EnumerationMode mode)
 {
    _enumerator = enumerator;
    _mode = mode;
 }
 internal SampleListEnumerator(SampleList sampleList, int index, int count, EnumerationMode mode)
 {
     _sampleList = sampleList;
     _index = index;
     _startIndex = index;
     _endIndex = index + count;
     _mode = mode;
 }
 public EnumerationStartedEventArgs(IEnumerator <object> enumerator, EnumerationMode mode)
 {
     _enumerator = enumerator;
     _mode       = mode;
 }
Exemple #14
0
 protected internal override IEnumerator <KeyValuePair <string, JSValue> > GetEnumerator(bool hideNonEnumerable, EnumerationMode enumeratorMode)
 {
     return(original.GetEnumerator(hideNonEnumerable, enumeratorMode));
 }
        public Task <IAsyncEnumerable <KeyValuePair <TKey, TValue> > > CreateEnumerableAsync(ITransaction txn, Func <TKey, bool> filter, EnumerationMode enumerationMode)
        {
            var enumerable = CreateEnumerable(txn, filter, enumerationMode);

            return(Task.FromResult(enumerable));
        }
 public EnumerationItem(EndpointReference epr)
 {
     _eprValue = epr;
     _mode = EnumerationMode.EnumerateEPR;
 }
 public EnumerationItem(EndpointReference epr, object value)
 {
     _eprValue = epr;
     _objectValue = value;
     _mode = EnumerationMode.EnumerateObjectAndEPR;
 }
 public EnumerationItem()
 {
     _mode = EnumerationMode.EnumerateEPR;
 }
 public PullResult(IEnumerable<object> items, EnumerationMode enumerationMode, bool endOfSequence)
 {
     _items = items;
     _enumerationMode = enumerationMode;
     _endOfSequence = endOfSequence;
 }
 public EnumerationStartedEventArgs(IEnumerator<object> enumerator, EnumerationMode mode)
 {
    _enumerator = enumerator;
    _mode = mode;
 }
Exemple #21
0
 private static IEnumerable<EnumerationItem> PullItems(int maximum, EnumerationMode mode, IEnumerator<object> enumerator, out bool endOfSequence)
 {
    int i = 0;
    List<EnumerationItem> result = new List<EnumerationItem>();
    bool moveNext = false;       
    while (i < maximum && (moveNext = enumerator.MoveNext()))
    {            
       if (mode == EnumerationMode.EnumerateEPR)
       {
          if (i == 0)
          {
             EnumerationModeExtension.Activate(EnumerationMode.EnumerateEPR, null);
          }
          result.Add(new EnumerationItem((EndpointAddress)enumerator.Current));
       }
       else
       {
          if (i == 0)
          {
             EnumerationModeExtension.Activate(EnumerationMode.EnumerateObjectAndEPR,
                                               enumerator.Current.GetType());
          }
          result.Add(new EnumerationItem(
                        new EndpointAddress("http://tempuri.org"),
                        enumerator.Current));
       }                        
       i++;
    }
    endOfSequence = !moveNext || i < maximum;
    return result;
 }
 private static IEnumerable<EnumerationItem> EncapsulateItems(IEnumerable<object> enumerable, EnumerationMode enumerationMode)
 {
     return enumerationMode == EnumerationMode.EnumerateEPR ?
         EncapsulateEPRs(enumerable) 
         : EncapsulateObjects(enumerable);
 }
 internal SampleListEnumerator(SampleList sampleList, int index, int count, EnumerationMode mode)
 {
     this.sampleList = sampleList;
     this.index = index;
     this.startIndex = index;
     this.endIndex = index + count;
     this.mode = mode;
 }
 public Task <IAsyncEnumerable <KeyValuePair <TKey, TValue> > > CreateEnumerableAsync(ITransaction txn, EnumerationMode enumerationMode)
 {
     return(CreateEnumerableAsync(txn, null, enumerationMode));
 }
Exemple #25
0
        public async Task <IAsyncEnumerable <System.Collections.Generic.KeyValuePair <TKey, TValue> > > CreateEnumerableAsync(ITransaction tx, Func <TKey, bool> filter, EnumerationMode enumerationMode)
        {
            var keys = new System.Collections.Generic.List <TKey>();

            try
            {
                BeginTransaction(tx);

                foreach (var key in Dictionary.Keys)
                {
                    if (filter == null || filter(key))
                    {
                        await LockManager.AcquireLock(tx.TransactionId, key, LockMode.Default);

                        keys.Add(key);
                    }
                }

                if (enumerationMode == EnumerationMode.Ordered)
                {
                    keys.Sort();
                }

                IAsyncEnumerable <System.Collections.Generic.KeyValuePair <TKey, TValue> > result = new MockAsyncEnumerable <System.Collections.Generic.KeyValuePair <TKey, TValue> >(keys.Select(k => new System.Collections.Generic.KeyValuePair <TKey, TValue>(k, Dictionary[k])));
                return(result);
            }
            catch
            {
                foreach (var key in keys)
                {
                    LockManager.ReleaseLock(tx.TransactionId, key);
                }

                throw;
            }
        }
        internal IAsyncEnumerable <KeyValuePair <TKey, TValue> > CreateEnumerable(ITransaction txn, Func <TKey, bool> filter, EnumerationMode enumerationMode)
        {
            var dictionary  = GetSnapshot(txn);
            var enumeration = dictionary.AsEnumerable();

            if (filter != null)
            {
                enumeration = enumeration.Where(kv => filter(kv.Key));
            }

            if (enumerationMode == EnumerationMode.Ordered)
            {
                enumeration = enumeration.OrderBy(x => x.Key);
            }

            var enumerable = enumeration.AsFabricAsyncEnumerable();

            return(enumerable);
        }
Exemple #27
0
        public async Task <IAsyncEnumerable <TKey> > CreateKeyEnumerableAsync(ITransaction tx, EnumerationMode enumerationMode, TimeSpan timeout, CancellationToken cancellationToken)
        {
            var keys = new System.Collections.Generic.List <TKey>();

            try
            {
                BeginTransaction(tx);
                foreach (var key in Dictionary.Keys)
                {
                    await LockManager.AcquireLock(tx.TransactionId, key, LockMode.Default, timeout, cancellationToken);

                    keys.Add(key);
                }

                if (enumerationMode == EnumerationMode.Ordered)
                {
                    keys.Sort();
                }

                IAsyncEnumerable <TKey> result = new MockAsyncEnumerable <TKey>(keys);
                return(result);
            }
            catch
            {
                foreach (var key in keys)
                {
                    LockManager.ReleaseLock(tx.TransactionId, key);
                }

                throw;
            }
        }
 public EnumerationPullHandler(IEnumerator<object> enumerator, EnumerationMode enumerationMode)
 {
     _enumerator = enumerator;
     _enumerationMode = enumerationMode;
 }
Exemple #29
0
 protected override IEnumerator<KeyValuePair<string, JSValue>> GetEnumerator(bool hideNonEnum, EnumerationMode enumerationMode) {
   //return base.GetEnumerator(hideNonEnum, enumerationMode);
   return _pins.OrderBy(z => z.Key).OrderBy(z => z.Value.layer).Select(z=>new KeyValuePair<string, JSValue>(z.Key, z.Value.owner._value)).GetEnumerator();
   //return _pins.OrderBy(z => z.Key).OrderBy(z => z.Value.layer).Select(z => z.Key).GetEnumerator();
 }
Exemple #30
0
 public Task <IAsyncEnumerable <System.Collections.Generic.KeyValuePair <TKey, TValue> > > CreateEnumerableAsync(ITransaction tx, EnumerationMode enumerationMode)
 {
     return(CreateEnumerableAsync(tx, null, enumerationMode));
 }
Exemple #31
0
 public Task <IAsyncEnumerable <TKey> > CreateKeyEnumerableAsync(ITransaction tx, EnumerationMode enumerationMode)
 {
     return(_dictionary.CreateKeyEnumerableAsync(tx, enumerationMode));
 }
Exemple #32
0
 public Task <IAsyncEnumerable <TKey> > CreateKeyEnumerableAsync(ITransaction tx, EnumerationMode enumerationMode)
 {
     return(CreateKeyEnumerableAsync(tx, enumerationMode, default(TimeSpan), CancellationToken.None));
 }
Exemple #33
0
 public Task <IAsyncEnumerable <TFilter> > CreateIndexEnumerableAsync <TFilter>(ITransaction tx, string index, EnumerationMode enumerationMode)
     where TFilter : IComparable <TFilter>, IEquatable <TFilter>
 {
     return(CreateIndexEnumerableAsync <TFilter>(tx, index, enumerationMode, DefaultTimeout, CancellationToken.None));
 }
Exemple #34
0
 public RootQuery ConfigEnumerationMode(EnumerationMode mode)
 {
     ContainerObject.EnumerationMode = mode;
     return(this);
 }
Exemple #35
0
        protected internal virtual IEnumerator <KeyValuePair <string, JSValue> > GetEnumerator(bool hideNonEnumerable, EnumerationMode enumeratorMode)
        {
            if (_valueType >= JSValueType.Object && _oValue != this)
            {
                var innerObject = _oValue as JSValue;
                if (innerObject != null)
                {
                    return(innerObject.GetEnumerator(hideNonEnumerable, enumeratorMode));
                }
            }

            return(GetEnumeratorImpl(hideNonEnumerable));
        }
Exemple #36
0
 Task <IAsyncEnumerable <KeyValuePair <TKey, TValue> > > IReliableDictionary <TKey, TValue> .CreateEnumerableAsync(ITransaction tx, Func <TKey, bool> filter, EnumerationMode enumerationMode)
 {
     return(_dictionary.CreateEnumerableAsync(tx, filter, enumerationMode));
 }
 private void OnEnumerationStarted(string context, IEnumerator<object> enumerator, EnumerationMode enumerationMode)
 {
     _pullServer.RegisterPullHandler(context, new EnumerationPullHandler(enumerator, enumerationMode));
 }
Exemple #38
0
 public Task <IAsyncEnumerable <TKey> > CreateKeyEnumerableAsync(ITransaction tx, EnumerationMode enumerationMode, TimeSpan timeout, CancellationToken cancellationToken)
 {
     return(_dictionary.CreateKeyEnumerableAsync(tx, enumerationMode, timeout, cancellationToken));
 }
 public Task <IAsyncEnumerable <TKey> > CreateKeyEnumerableAsync(ITransaction txn, EnumerationMode enumerationMode,
                                                                 TimeSpan timeout, CancellationToken cancellationToken)
 {
     return(Task.FromResult <IAsyncEnumerable <TKey> >(
                new MockAsyncEnumerable <TKey>(
                    enumerationMode == EnumerationMode.Ordered
                 ? dictionary.Select(x => x.Key).OrderBy(k => k)
                 : dictionary.Select(x => x.Key))));
 }
Exemple #40
0
        public Task <IAsyncEnumerable <TFilter> > CreateIndexEnumerableAsync <TFilter>(ITransaction tx, string indexName, EnumerationMode enumerationMode, TimeSpan timeout, CancellationToken token)
            where TFilter : IComparable <TFilter>, IEquatable <TFilter>
        {
            // Find the index.
            var index = GetFilterableIndex <TFilter>(indexName);

            // Enumerate the keys (distinct filter values) of this index.
            return(index.CreateEnumerableAsync(tx, enumerationMode, timeout, token));
        }
Exemple #41
0
        protected internal override IEnumerator <KeyValuePair <string, JSValue> > GetEnumerator(bool hideNonEnumerable, EnumerationMode enumerationMode)
        {
            for (var i = 0; i < data.Count; i++)
            {
                yield return(new KeyValuePair <string, JSValue>(Tools.Int32ToString(i), (int)enumerationMode > 0 ? new Element(this, i) : null));
            }

            for (var e = base.GetEnumerator(hideNonEnumerable, enumerationMode); e.MoveNext();)
            {
                yield return(e.Current);
            }
        }
Exemple #42
0
        protected internal override IEnumerator <KeyValuePair <string, JSValue> > GetEnumerator(bool hideNonEnum, EnumerationMode enumeratorMode)
        {
            cloneValues();

            if (a0 != null && a0.Exists && (!hideNonEnum || (a0._attributes & JSValueAttributesInternal.DoNotEnumerate) == 0))
            {
                yield return(new KeyValuePair <string, JSValue>("0", a0));
            }

            if (a1 != null && a1.Exists && (!hideNonEnum || (a1._attributes & JSValueAttributesInternal.DoNotEnumerate) == 0))
            {
                yield return(new KeyValuePair <string, JSValue>("1", a1));
            }

            if (a2 != null && a2.Exists && (!hideNonEnum || (a2._attributes & JSValueAttributesInternal.DoNotEnumerate) == 0))
            {
                yield return(new KeyValuePair <string, JSValue>("2", a2));
            }

            if (a3 != null && a3.Exists && (!hideNonEnum || (a3._attributes & JSValueAttributesInternal.DoNotEnumerate) == 0))
            {
                yield return(new KeyValuePair <string, JSValue>("3", a3));
            }

            if (a4 != null && a4.Exists && (!hideNonEnum || (a4._attributes & JSValueAttributesInternal.DoNotEnumerate) == 0))
            {
                yield return(new KeyValuePair <string, JSValue>("4", a4));
            }

            if (callee != null && callee.Exists && (!hideNonEnum || (callee._attributes & JSValueAttributesInternal.DoNotEnumerate) == 0))
            {
                yield return(new KeyValuePair <string, JSValue>("callee", callee));
            }

            if (caller != null && caller.Exists && (!hideNonEnum || (caller._attributes & JSValueAttributesInternal.DoNotEnumerate) == 0))
            {
                yield return(new KeyValuePair <string, JSValue>("caller", caller));
            }

            if (_lengthContainer != null && _lengthContainer.Exists && (!hideNonEnum || (_lengthContainer._attributes & JSValueAttributesInternal.DoNotEnumerate) == 0))
            {
                yield return(new KeyValuePair <string, JSValue>("length", _lengthContainer));
            }

            var be = base.GetEnumerator(hideNonEnum, enumeratorMode);

            while (be.MoveNext())
            {
                yield return(be.Current);
            }
        }
Exemple #43
0
        public async Task <IAsyncEnumerable <TKey> > CreateEnumerableAsync(ITransaction tx, EnumerationMode enumerationMode = EnumerationMode.Unordered, Func <TKey, Boolean> filter = null)
        {
            IAsyncEnumerable <KeyValuePair <TKey, Object> > enumerable = await m_dictionary.CreateEnumerableAsync(tx, filter ?? (k => true), enumerationMode);

            return(new ReliableListEnumerable <TKey>(enumerable));
        }
Exemple #44
0
        protected internal override IEnumerator <KeyValuePair <string, JSValue> > GetEnumerator(bool hideNonEnum, EnumerationMode enumerationMode)
        {
            var pe = _staticProxy.GetEnumerator(hideNonEnum, enumerationMode);

            while (pe.MoveNext())
            {
                yield return(pe.Current);
            }
            pe = __proto__.GetEnumerator(hideNonEnum, enumerationMode);
            while (pe.MoveNext())
            {
                yield return(pe.Current);
            }
        }
Exemple #45
0
 /// <summary>
 /// Create an async enumerable over the set of distinct filter values in this index.
 /// </summary>
 public Task <IAsyncEnumerable <TFilter> > CreateEnumerableAsync(ITransaction tx, EnumerationMode enumerationMode, TimeSpan timeout, CancellationToken token)
 {
     return(_index.CreateKeyEnumerableAsync(tx, enumerationMode, timeout, token));
 }
Exemple #46
0
 public static Task ForeachAsync <TKey, TValue>(
     this IReliableDictionary <TKey, TValue> instance, ITransaction tx, CancellationToken token, EnumerationMode enumMode, Func <TKey, bool> filter,
     Action <KeyValuePair <TKey, TValue> > doSomething)
     where TKey : IEquatable <TKey>, IComparable <TKey>
 {
     return(ForeachAsync <TKey, TValue>(instance.CreateEnumerableAsync(tx, filter, enumMode), token, doSomething));
 }
		/// <summary>
		///     QueryCommand like setter for WithEnumerationMode
		/// </summary>
		/// <returns></returns>
		public IQueryContainer WithEnumerationMode(EnumerationMode mode)
		{
			EnumerationMode = mode;
			return this;
		}