Пример #1
0
 public ItemWithGroupKey(TObject item, TGroupKey group, Optional <TGroupKey> prevousGroup, int index)
 {
     Item         = item;
     Group        = group;
     PrevousGroup = prevousGroup;
     Index        = index;
 }
Пример #2
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="T:System.Object" /> class.
 /// </summary>
 public ChangeWithGroup(Change <TObject, TKey> change, Func <TObject, TGroupKey> keySelector)
 {
     _groupKey = keySelector(change.Current);
     _item     = change.Current;
     _key      = change.Key;
     _reason   = change.Reason;
 }
Пример #3
0
            private Tuple <ManagedGroup <TObject, TKey, TGroupKey>, bool> GetCache(TGroupKey key)
            {
                var cache = _groupCache.Lookup(key);

                if (cache.HasValue)
                {
                    return(Tuple.Create(cache.Value, false));
                }

                var newcache = new ManagedGroup <TObject, TKey, TGroupKey>(key);

                _groupCache[key] = newcache;
                return(Tuple.Create(newcache, true));
            }
Пример #4
0
            private Tuple <GroupCache, bool> GetCache(TGroupKey key)
            {
                var cache = _allGroupings.Lookup(key);

                if (cache.HasValue)
                {
                    return(Tuple.Create(cache.Value, false));
                }

                var newcache = new GroupCache(key);

                _allGroupings[key] = newcache;
                return(Tuple.Create(newcache, true));
            }
Пример #5
0
 internal GroupKeyData(TOrderKey orderKey, TGroupKey hashKey, IComparer <TOrderKey> orderComparer)
 {
     _orderKey = orderKey;
     _grouping = new OrderedGroupByGrouping <TGroupKey, TOrderKey, TElement>(hashKey, orderComparer);
 }
Пример #6
0
 public GroupCache(TGroupKey key)
 {
     Key   = key;
     Cache = new Cache <TObject, TKey>();
 }
Пример #7
0
 private static IGrouping <TObject, TKey, TGroupKey> GetGroupState(TGroupKey key, ICache <TObject, TKey> cache)
 {
     return(new ImmutableGroup <TObject, TKey, TGroupKey>(key, cache));
 }
Пример #8
0
            private void RemoveFromOldGroup(IDictionary <TGroupKey, IGrouping <TObject, TKey, TGroupKey> > groupState, TGroupKey groupKey, TKey currentKey)
            {
                _allGroupings.Lookup(groupKey)
                .IfHasValue(g =>
                {
                    if (!groupState.ContainsKey(g.Key))
                    {
                        groupState[g.Key] = GetGroupState(g.Key, g.Cache);
                    }

                    g.Cache.Remove(currentKey);
                });
            }
Пример #9
0
 public SortedPoolRemovedEventArgs(TKey key, TValue value, TGroupKey group, bool evicted) : base(key, value, group)
 {
     Evicted = evicted;
 }
Пример #10
0
 public ItemWithGroupKey(TObject item, TGroupKey group, Optional <TGroupKey> previousGroup)
 {
     Item          = item;
     Group         = group;
     PreviousGroup = previousGroup;
 }
Пример #11
0
 public SortedPoolEventArgs(TKey key, TValue value, TGroupKey group)
 {
     Key   = key;
     Value = value;
     Group = group;
 }
Пример #12
0
 public GroupContainer(TGroupKey key)
 {
     Key = key;
 }
 public void Populate(long start, ref TGroupKey key, ref TPayload payload)
 {
     this.Start   = start;
     this.Key     = key;
     this.Payload = payload;
 }
Пример #14
0
 public Group(TGroupKey key, AutoTreeSortedList <T, TId, TSortKey> list)
 {
     Key  = key;
     List = list;
 }
Пример #15
0
 public Group(TGroupKey groupKey, IEnumerable <TItem> items)
 {
     GroupKey      = groupKey;
     ItemsInternal = new ObservableCollection <TItem>(items);
     Items         = new ReadOnlyObservableCollection <TItem>(ItemsInternal);
 }
Пример #16
0
 public Group(TGroupKey groupKey) : this(groupKey, Enumerable.Empty <TItem>())
 {
 }