/// <summary> /// Создаёт объект <see cref="UniqueItemsContainerFactory{TKey,TItem}"/> /// </summary> /// <param name="itemsContainerFactory">Фабрика контейнеров, над элементами которых будет проверяться уникальность.</param> /// <param name="equalityComparer">Сравниватель элементов друг с другом.</param> public UniqueItemsContainerFactory(IItemsContainerFactory <TKey, TItem> itemsContainerFactory, IEqualityComparer <TItem> equalityComparer) { Contract.Requires <ArgumentNullException>(itemsContainerFactory != null); _itemsContainerFactory = itemsContainerFactory; _equalityComparer = equalityComparer; }
/// <summary> /// Конструктор для создания <see cref="RoundRobinItemsGroupContainer{TRoundRobinKey,TItem}"/>. /// </summary> /// <param name="itemsContainerFactory">Фабрика создания контейнеров для групп.</param> /// <param name="itemToKeyConverter">Извлекатель ключей из элементов, по которым происходит группировка элементов.</param> public RoundRobinItemsGroupContainer(IItemsContainerFactory <TRoundRobinKey, TItem> itemsContainerFactory, IConverter <TItem, TRoundRobinKey> itemToKeyConverter) { Contract.Requires <ArgumentNullException>(itemsContainerFactory != null); Contract.Requires <ArgumentNullException>(itemToKeyConverter != null); _itemsContainerFactory = itemsContainerFactory; _itemToKeyConverter = itemToKeyConverter; _grouppedQueues = new ConcurrentDictionary <TRoundRobinKey, IItemsContainer <TItem> >(); _rrQueue = new ConcurrentQueue <IItemsContainer <TItem> >(); }
/// <summary> /// Конструктор для создания <see cref="RoundRobinItemsGroupContainerFactory{TRoundRobinKey,TItem}"/>. /// </summary> /// <param name="itemsContainerFactory">Фабрика создания контейнеров для групп.</param> /// <param name="itemToKeyConverter">Извлекатель ключей из элементов, по которым происходит группировка элементов.</param> public RoundRobinItemsGroupContainerFactory(IItemsContainerFactory <TRoundRobinKey, TItem> itemsContainerFactory, IConverter <TItem, TRoundRobinKey> itemToKeyConverter) { _itemsContainerFactory = itemsContainerFactory; _itemToKeyConverter = itemToKeyConverter; }