/// <summary> /// ソースコレクションを指定してインスタンスを新規作成します /// ソースコレクションの要素数がキャパシティとなります /// </summary> /// <param name="source">ソースコレクション</param> /// <param name="mode">キャパを超えて要素を追加しようとしたときの挙動</param> public FixedCapacityQueue(IReadOnlyCollection <T> source, CapacityOverQueueBehaviour behaviour = CapacityOverQueueBehaviour.ThrowException) : this(new Queue <T>(source), source.Count, behaviour) { }
/// <summary> /// 内部に使用する<see cref="IQueue{T}"/>を指定して、インスタンスを新規作成します /// </summary> /// <param name="innerQueue">内部に使用する<see cref="IQueue{T}"/></param> /// <param name="capacity">固定長</param> /// <param name="behaviour">空きがない状態で<see cref="Enqueue(T)"/>したときの挙動</param> public FixedCapacityQueue(IQueue <T> innerQueue, int capacity, CapacityOverQueueBehaviour behaviour = CapacityOverQueueBehaviour.ThrowException) { this.innerQueue = innerQueue; this.Capacity = capacity; this.CapacityOverBehaviour = behaviour; }
/// <summary> /// キャパシティを指定してインスタンスを新規作成します /// </summary> /// <param name="capacity">要素数</param> /// <param name="mode">キャパを超えて要素を追加しようとしたときの挙動</param> public FixedCapacityQueue(int capacity, CapacityOverQueueBehaviour behaviour = CapacityOverQueueBehaviour.ThrowException) : this(new Queue <T>(capacity), capacity, behaviour) { }
/// <summary> /// キャパシティを指定してインスタンスを新規作成します /// </summary> /// <param name="capacity">要素数</param> /// <param name="mode">キャパを超えて要素を追加しようとしたときの挙動</param> public FixedCapacityReactiveQueue(int capacity, CapacityOverQueueBehaviour behaviour = CapacityOverQueueBehaviour.ThrowException) : base(new ReactiveQueue <T>(capacity), capacity, behaviour) { }