示例#1
0
        /// <summary>
        /// Tests specified receiver.
        /// </summary>
        private void TestStreamReceiver(IStreamReceiver <int, int> receiver)
        {
            using (var ldr = _grid.GetDataStreamer <int, int>(CacheName))
            {
                ldr.AllowOverwrite = true;

                ldr.Receiver = new StreamReceiverBinarizable();

                ldr.Receiver = receiver;  // check double assignment

                Assert.AreEqual(ldr.Receiver, receiver);

                for (var i = 0; i < 100; i++)
                {
                    ldr.AddData(i, i);
                }

                ldr.Flush();

                for (var i = 0; i < 100; i++)
                {
                    Assert.AreEqual(i + 1, _cache.Get(i));
                }
            }
        }
示例#2
0
 public ReceiverNode(IStreamReceiver receiver, Type eventHandlerType)
 {
     Receiver         = receiver;
     EventHandlerType = eventHandlerType;
     ResetEvent       = new AsyncAutoResetEvent(false);
     IsLive           = false;
 }
        /// <summary>
        ///
        /// </summary>
        /// <param name="connectionId"></param>
        /// <param name="receiver"></param>
        public virtual void AddReceiver(string connectionId, IStreamReceiver receiver)
        {
            var transceiver = m_handler.AddTransceiver(connectionId, receiver.Kind, RTCRtpTransceiverDirection.RecvOnly);

            if (transceiver.Receiver != null)
            {
                receiver.SetReceiver(connectionId, transceiver.Receiver);
            }
        }
示例#4
0
        /// <summary>
        /// Invokes the receiver.
        /// </summary>
        /// <param name="receiver">Receiver.</param>
        /// <param name="grid">Grid.</param>
        /// <param name="cache">Cache.</param>
        /// <param name="stream">Stream.</param>
        /// <param name="keepBinary">Binary flag.</param>
        public static void InvokeReceiver <TK, TV>(IStreamReceiver <TK, TV> receiver, Ignite grid,
                                                   IPlatformTargetInternal cache, IBinaryStream stream, bool keepBinary)
        {
            var reader = grid.Marshaller.StartUnmarshal(stream, keepBinary);

            var size = reader.ReadInt();

            var entries = new List <ICacheEntry <TK, TV> >(size);

            for (var i = 0; i < size; i++)
            {
                entries.Add(new CacheEntry <TK, TV>(reader.ReadObject <TK>(), reader.ReadObject <TV>()));
            }

            receiver.Receive(Ignite.GetCache <TK, TV>(cache, keepBinary), entries);
        }
示例#5
0
        /// <summary>
        /// Invokes the receiver.
        /// </summary>
        /// <param name="receiver">Receiver.</param>
        /// <param name="grid">Grid.</param>
        /// <param name="cache">Cache.</param>
        /// <param name="stream">Stream.</param>
        /// <param name="keepPortable">Portable flag.</param>
        public static void InvokeReceiver <TK, TV>(IStreamReceiver <TK, TV> receiver, Ignite grid, IUnmanagedTarget cache,
                                                   IPortableStream stream, bool keepPortable)
        {
            var reader = grid.Marshaller.StartUnmarshal(stream, keepPortable);

            var size = reader.ReadInt();

            var entries = new List <ICacheEntry <TK, TV> >(size);

            for (var i = 0; i < size; i++)
            {
                entries.Add(new CacheEntry <TK, TV>(reader.ReadObject <TK>(), reader.ReadObject <TV>()));
            }

            receiver.Receive(grid.Cache <TK, TV>(cache, keepPortable), entries);
        }
 /// <summary>
 ///
 /// </summary>
 /// <param name="connectionId"></param>
 /// <param name="receiver"></param>
 public virtual void RemoveReceiver(string connectionId, IStreamReceiver receiver)
 {
     //receiver.
     receiver.SetReceiver(connectionId, null);
 }