예제 #1
0
        internal static ProjectValuesWrapper <K, Vsrc, Vdest> Create(IMutableSeries <K, Vsrc> innerMap, Func <Vsrc, Vdest> srcToDest, Func <Vdest, Vsrc> destToSrc)
        {
            var inst = Create(innerMap);

            inst._srcToDest = srcToDest;
            inst._destToSrc = destToSrc;
            return(inst);
        }
예제 #2
0
 public override void Dispose(bool disposing)
 {
     Flush();
     _innerMap  = null;
     _srcToDest = null;
     _destToSrc = null;
     base.Dispose(disposing);
 }
예제 #3
0
        internal static TImpl Create(IMutableSeries <TKey, TValue> innerSeries)
        {
            TImpl inner;

            if (!Pool.TryTake(out inner))
            {
                inner = new TImpl();
            }
            inner.Inner = innerSeries;
            return(inner);
        }
예제 #4
0
        internal static MutableVariantSeries <TKey, TValue> Create(IMutableSeries <TKey, TValue> innerSeries)
        {
            MutableVariantSeries <TKey, TValue> instance;

            if (_pool == null || ReferenceEquals(instance = _pool.Allocate(), null))
            {
                instance = new MutableVariantSeries <TKey, TValue>(innerSeries);
            }
            else
            {
                instance.Inner = innerSeries;
            }
            return(instance);
        }
예제 #5
0
        public void CouldCompleteObserver(IMutableSeries <int, int> map)
        {
            var subscriber = new SumValuesObserver();
            var series     = map as Series <int, int>;
            var cursor     = (series + series).GetCursor();

            cursor.Source.Subscribe(subscriber);
            var expectedSum = 0;

            for (int i = 0; i < 10; i++)
            {
                map.Add(i, i);
                expectedSum += i;
            }

            Assert.IsFalse(subscriber.IsCompleted);
            map.Complete();
            Thread.Sleep(100);
            Assert.IsTrue(subscriber.IsCompleted);
            Thread.Sleep(1000);
            Assert.AreEqual(expectedSum * 2, subscriber.Sum);
        }
예제 #6
0
 internal DataBlockSource(IMutableSeries <TKey, DataBlock> blockSeries)
 {
     _blockSeries = blockSeries;
 }
예제 #7
0
 public DataBlockSource()
 {
     _blockSeries = new MutableSeries <TKey, DataBlock>(DataBlock.Create());
 }
예제 #8
0
 public MutableSeries(IMutableSeries <TK, TV> innerSeries)
 {
     _innerSeries = innerSeries;
 }
예제 #9
0
 /// <summary>
 /// Projects values from source to destination and back
 /// </summary>
 public static IMutableSeries <K, VDest> BiMap <K, VSrc, VDest>(this IMutableSeries <K, VSrc> innerMap,
                                                                Func <VSrc, VDest> srcToDest, Func <VDest, VSrc> destToSrc)
 {
     return(ProjectValuesWrapper <K, VSrc, VDest> .Create(innerMap, srcToDest, destToSrc));
 }
예제 #10
0
 public VariantMutableSeries(IMutableSeries <TKey, TValue> innerSeries) : base(innerSeries)
 {
 }
예제 #11
0
 protected ConvertMutableSeries(IMutableSeries <TKey, TValue> innerSeries) : base(innerSeries)
 {
 }
예제 #12
0
 public ZonedSeries(IMutableSeries <DateTime, V> map, string originalTimeZone) : base(map)
 {
     //_map = map;
     _tz = originalTimeZone;
 }
예제 #13
0
 public ProjectValuesWrapper(IMutableSeries <K, Vsrc> innerMap, Func <Vsrc, Vdest> srcToDest, Func <Vdest, Vsrc> destToSrc) : base(innerMap)
 {
     _innerMap  = innerMap;
     _srcToDest = srcToDest;
     _destToSrc = destToSrc;
 }
예제 #14
0
 public DataBlockSource()
 {
     _blockSeries = new Series <TKey, DataBlock>();
 }
예제 #15
0
 internal DataBlockSource(IMutableSeries <TKey, WeakReference <DataBlock> > blockSeries)
 {
     _weakSeries = blockSeries;
 }
예제 #16
0
 public DataBlockSource()
 {
     _weakSeries = new MutableSeries <TKey, WeakReference <DataBlock> >(DataBlock.Create());
 }