public SoftRefByteArrayPool( IMemoryTrimmableRegistry memoryTrimmableRegistry, PoolParams poolParams, PoolStatsTracker poolStatsTracker) : base(memoryTrimmableRegistry, poolParams, poolStatsTracker) { }
/// <summary> /// Instantiates the <see cref="FlexByteArrayPool"/>. /// </summary> /// <param name="memoryTrimmableRegistry"> /// A class to be notified of system memory events. /// </param> /// <param name="args">The pool params.</param> public FlexByteArrayPool( IMemoryTrimmableRegistry memoryTrimmableRegistry, PoolParams args) { Preconditions.CheckArgument(args.MaxNumThreads > 0); _delegatePool = new SoftRefByteArrayPool( memoryTrimmableRegistry, args, NoOpPoolStatsTracker.Instance); _resourceReleaser = new ResourceReleaserImpl <byte[]>(value => Release(value)); }
/// <summary> /// Creates an instance of a bitmap pool. /// </summary> /// <param name="memoryTrimmableRegistry"> /// The memory manager to register with. /// </param> /// <param name="poolParams">Pool parameters.</param> /// <param name="poolStatsTracker"> /// Listener that logs pool statistics. /// </param> public BitmapPool( IMemoryTrimmableRegistry memoryTrimmableRegistry, PoolParams poolParams, PoolStatsTracker poolStatsTracker) : base( memoryTrimmableRegistry, poolParams, poolStatsTracker) { Initialize(); }
/// <summary> /// Creates a new instance of the GenericByteArrayPool class. /// </summary> /// <param name="memoryTrimmableRegistry"> /// The memory manager to register with. /// </param> /// <param name="poolParams"> /// Provider for pool parameters. /// </param> /// <param name="poolStatsTracker"> /// Listener that logs pool statistics. /// </param> public GenericByteArrayPool( IMemoryTrimmableRegistry memoryTrimmableRegistry, PoolParams poolParams, PoolStatsTracker poolStatsTracker) : base(memoryTrimmableRegistry, poolParams, poolStatsTracker) { _bucketSizes = new int[poolParams.BucketSizes.Keys.Count]; poolParams.BucketSizes.Keys.CopyTo(_bucketSizes, 0); Initialize(); }
/// <summary> /// Creates a new instance of <see cref="NativeMemoryChunkPool"/>. /// </summary> /// <param name="memoryTrimmableRegistry"> /// The memory manager to register with. /// </param> /// <param name="poolParams"> /// Provider for pool parameters. /// </param> /// <param name="nativeMemoryChunkPoolStatsTracker"> /// The pool stats tracker. /// </param> public NativeMemoryChunkPool( IMemoryTrimmableRegistry memoryTrimmableRegistry, PoolParams poolParams, PoolStatsTracker nativeMemoryChunkPoolStatsTracker) : base( memoryTrimmableRegistry, poolParams, nativeMemoryChunkPoolStatsTracker) { Dictionary <int, int> bucketSizes = poolParams.BucketSizes; _bucketSizes = new int[bucketSizes.Keys.Count]; poolParams.BucketSizes.Keys.CopyTo(_bucketSizes, 0); Initialize(); }
/// <summary> /// Instantiates the <see cref="SharedByteArray"/>. /// </summary> /// <param name="memoryTrimmableRegistry"> /// A class to be notifiedof system memory events. /// </param> /// <param name="args">The pool params.</param> public SharedByteArray( IMemoryTrimmableRegistry memoryTrimmableRegistry, PoolParams args) { Preconditions.CheckNotNull(memoryTrimmableRegistry); Preconditions.CheckArgument(args.MinBucketSize > 0); Preconditions.CheckArgument(args.MaxBucketSize >= args.MinBucketSize); _maxByteArraySize = args.MaxBucketSize; _minByteArraySize = args.MinBucketSize; _byteArraySoftRef = new OOMSoftReference <byte[]>(); _resourceReleaser = new ResourceReleaserImpl <byte[]>(value => { _semaphore.Release(); }); memoryTrimmableRegistry.RegisterMemoryTrimmable(this); }
/// <summary> /// Creates a new instance of the pool. /// </summary> /// <param name="memoryTrimmableRegistry"> /// A class to be notified of system memory events. /// </param> /// <param name="poolParams">Pool parameters.</param> /// <param name="poolStatsTracker"> /// Listener that logs pool statistics. /// </param> public BasePool( IMemoryTrimmableRegistry memoryTrimmableRegistry, PoolParams poolParams, PoolStatsTracker poolStatsTracker) { _memoryTrimmableRegistry = Preconditions.CheckNotNull(memoryTrimmableRegistry); _poolParams = Preconditions.CheckNotNull(poolParams); _poolStatsTracker = Preconditions.CheckNotNull(poolStatsTracker); // Initialize the buckets Buckets = new Dictionary <int, Bucket <T> >(); InitBuckets(new Dictionary <int, int>(0)); InUseValues = new HashSet <T>(); _freeCounter = new Counter(); _usedCounter = new Counter(); }
/// <summary> /// Sets the small <see cref="GenericByteArrayPool"/> params. /// </summary> public Builder SetSmallByteArrayPoolParams(PoolParams commonByteArrayPoolParams) { _smallByteArrayPoolParams = Preconditions.CheckNotNull(commonByteArrayPoolParams); return(this); }
/// <summary> /// Sets the <see cref="NativeMemoryChunkPool"/> params. /// </summary> public Builder SetNativeMemoryChunkPoolParams(PoolParams nativeMemoryChunkPoolParams) { _nativeMemoryChunkPoolParams = Preconditions.CheckNotNull(nativeMemoryChunkPoolParams); return(this); }
/// <summary> /// Sets the <see cref="FlexByteArrayPool"/> params. /// </summary> public Builder SetFlexByteArrayPoolParams(PoolParams flexByteArrayPoolParams) { _flexByteArrayPoolParams = flexByteArrayPoolParams; return(this); }
/// <summary> /// Sets the <see cref="BitmapPool"/> params. /// </summary> public Builder SetBitmapPoolParams(PoolParams bitmapPoolParams) { _bitmapPoolParams = Preconditions.CheckNotNull(bitmapPoolParams); return(this); }