Пример #1
0
        public void TestRandomAllocation()
        {
            int          repeatCount  = 10000;
            int          range        = 100;
            IList <int>  allocated    = new List <int>();
            IntAllocator intAllocator = new IntAllocator(0, range);
            Random       rand         = new Random();

            while (repeatCount-- > 0)
            {
                if (rand.Next(2) == 0)
                {
                    int a = intAllocator.Allocate();
                    if (a > -1)
                    {
                        Assert.False(allocated.Contains(a));
                        allocated.Add(a);
                    }
                }
                else if (allocated.Count > 0)
                {
                    int a = allocated[0];
                    intAllocator.Free(a);
                    allocated.RemoveAt(0);
                }
            }
        }
Пример #2
0
        public void TestAllocateAll()
        {
            int          range        = 100;
            IList <int>  allocated    = new List <int>();
            IntAllocator intAllocator = new IntAllocator(0, range);

            for (int i = 0; i <= range; i++)
            {
                int a = intAllocator.Allocate();
                Assert.AreNotEqual(-1, a);
                Assert.False(allocated.Contains(a));
                allocated.Add(a);
            }
        }
 public SessionManager(Connection connection, ushort channelMax)
 {
     m_connection = connection;
     ChannelMax   = (channelMax == 0) ? ushort.MaxValue : channelMax;
     Ints         = new IntAllocator(1, ChannelMax);
 }
Пример #4
0
 public SessionManager(RabbitMQ.Client.Framing.Impl.Connection connection, ushort channelMax)
 {
     m_connection = connection;
     ChannelMax   = (channelMax == 0) ? ushort.MaxValue : channelMax;
     Ints         = new IntAllocator(1, ChannelMax);
 }