Exemple #1
0
        public void TestMethod1()
        {
            DoubleBuff <uint> buffer = new DoubleBuff <uint>();

            Assert.IsFalse(buffer.Contain(1));
            buffer.Add(1);
            Assert.IsTrue(buffer.Contain(1));
            buffer.Remove(1);
            Assert.IsFalse(buffer.Contain(1));

            for (uint i = 0; i < 10; i++)
            {
                buffer.Add(i);
            }

            int cnt = 0;

            foreach (var item in buffer)
            {
                Assert.IsTrue(item == (uint)cnt);
                buffer.Add(item + 10);
                cnt++;
            }

            Assert.IsTrue(buffer.Contain(19));
            Assert.IsFalse(buffer.Contain(20));
        }
Exemple #2
0
        public void UnRegist(Key key, Action <object> msgHandler)
        {
            DoubleBuff <Action <object> > buffer = null;

            if (!handlers.TryGetValue(key, out buffer))
            {
                return;
            }

            buffer.Remove(msgHandler);
        }
Exemple #3
0
        public void Send(Key key, object msg)
        {
            DoubleBuff <Action <object> > buffer = null;

            if (!handlers.TryGetValue(key, out buffer))
            {
                return;
            }

            foreach (var handler in buffer)
            {
                handler.Invoke(msg);
            }
        }
Exemple #4
0
        public void Regist(Key key, Action <object> msgHandler)
        {
            DoubleBuff <Action <object> > buffer = null;

            if (handlers.TryGetValue(key, out buffer))
            {
                if (!buffer.Contain(msgHandler))
                {
                    buffer.Add(msgHandler);
                }
            }
            else
            {
                buffer = new DoubleBuff <Action <object> >();
                buffer.Add(msgHandler);
                handlers.Add(key, buffer);
            }
        }