public TieredObjectPool([NotNull] IPooledObjectPolicy <T> policy, [NotNull] IPooledObjectDisposePolicy <T> disposePolicy, int maximumRetained, [NotNull] ObjectPool <T> next) { _policy = policy ?? throw new ArgumentNullException(nameof(policy)); _disposePolicy = disposePolicy ?? throw new ArgumentNullException(nameof(disposePolicy)); _items = new ObjectWrapper[maximumRetained - 1]; _next = next ?? throw new ArgumentNullException(nameof(next)); }
public WeakObjectPool([NotNull] IPooledObjectPolicy <T> policy, [NotNull] IPooledObjectDisposePolicy <T> disposePolicy, int maximumRetained) { if (policy == null) { throw new ArgumentNullException(nameof(policy)); } if (disposePolicy == null) { throw new ArgumentNullException(nameof(disposePolicy)); } var wrappedPolicy = new PolicyAdapter(policy); var wrappedDisposePolicy = new DisposePolicyAdapter(disposePolicy); _objects = new TieredObjectPool <WeakReference <T> >( wrappedPolicy, maximumRetained, new NullObjectPool <WeakReference <T> >(wrappedPolicy, wrappedDisposePolicy) ); }
public DisposePolicyAdapter(IPooledObjectDisposePolicy <T> policy) { _policy = policy; }
public NullObjectPool([NotNull] IPooledObjectPolicy <T> policy, [NotNull] IPooledObjectDisposePolicy <T> disposePolicy) { _policy = policy ?? throw new ArgumentNullException(nameof(policy)); _disposePolicy = disposePolicy ?? throw new ArgumentNullException(nameof(disposePolicy)); }