Exemplo n.º 1
0
        public StashedDisposableCacheValue(TKey key, IDisposableValue <TValue> value, IExpiryStash <TKey> stash)
            : base(key, stash)
        {
            Contracts.Requires.That(value != null);

            this.value = value;
        }
Exemplo n.º 2
0
            public SharedDisposable(IDisposableValue <T> value, int count)
            {
                Contracts.Requires.That(count >= 0);

                this.value = value;
                this.count = new AtomicInt(count);

                if (count == 0)
                {
                    this.value?.Dispose();
                }
            }
            public ContourableVoxelView(
                IDisposableValue <IReadOnlyVoxelGridChunk[, , ]> voxelChunkPins,
                Index3D voxelChunkDimensionsInVoxels,
                Index3D stageVoxelIndexOfViewOrigin)
            {
                Contracts.Requires.That(voxelChunkPins != null);

                this.voxelChunkDimensionsInVoxels = voxelChunkDimensionsInVoxels;
                this.stageVoxelIndexOfViewOrigin  = stageVoxelIndexOfViewOrigin;
                this.pins = voxelChunkPins;

                this.voxels = CompositeArray.Create(
                    voxelChunkPins.Value.ConvertAll(chunk => chunk.VoxelsLocalView),
                    this.voxelChunkDimensionsInVoxels);
            }
Exemplo n.º 4
0
    public static bool TryTakeLoan <T>(this IPool <T> pool, out IDisposableValue <T> value)
    {
        Contracts.Requires.That(pool != null);

        T result;

        if (pool.TryTake(out result))
        {
            value = new LoanedValue <T>(pool, result);
            return(true);
        }
        else
        {
            value = null;
            return(false);
        }
    }
Exemplo n.º 5
0
 /// <inheritdoc />
 public void OnNext(IDisposableValue <T> value) =>
 this.subject.OnNext(new SharedDisposable(value, this.counter.SubscriberCount));
 public SharedDisposable(IDisposableValue <T> value)
 {
     this.value = value;
     this.count = new AtomicInt(Uninitialized);
 }
Exemplo n.º 7
0
 public static ICacheValue <TKey, TValue> CreateStashed <TKey, TValue>(
     TKey key, IDisposableValue <TValue> value, IExpiryStash <TKey> stash) =>
 new StashedDisposableCacheValue <TKey, TValue>(key, value, stash);