Пример #1
0
 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));
        }
Пример #3
0
 /// <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();
 }
Пример #4
0
 /// <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);
        }
Пример #7
0
        /// <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();
        }
Пример #8
0
 /// <summary>
 /// Sets the small <see cref="GenericByteArrayPool"/> params.
 /// </summary>
 public Builder SetSmallByteArrayPoolParams(PoolParams commonByteArrayPoolParams)
 {
     _smallByteArrayPoolParams = Preconditions.CheckNotNull(commonByteArrayPoolParams);
     return(this);
 }
Пример #9
0
 /// <summary>
 /// Sets the <see cref="NativeMemoryChunkPool"/> params.
 /// </summary>
 public Builder SetNativeMemoryChunkPoolParams(PoolParams nativeMemoryChunkPoolParams)
 {
     _nativeMemoryChunkPoolParams = Preconditions.CheckNotNull(nativeMemoryChunkPoolParams);
     return(this);
 }
Пример #10
0
 /// <summary>
 /// Sets the <see cref="FlexByteArrayPool"/> params.
 /// </summary>
 public Builder SetFlexByteArrayPoolParams(PoolParams flexByteArrayPoolParams)
 {
     _flexByteArrayPoolParams = flexByteArrayPoolParams;
     return(this);
 }
Пример #11
0
 /// <summary>
 /// Sets the <see cref="BitmapPool"/> params.
 /// </summary>
 public Builder SetBitmapPoolParams(PoolParams bitmapPoolParams)
 {
     _bitmapPoolParams = Preconditions.CheckNotNull(bitmapPoolParams);
     return(this);
 }