Example #1
0
        private ManagedGroup CreateGroup(List <Car> cars)
        {
            var id        = _groups.Count;
            var queue     = new MessageQueue();
            var processor = _messageProcessorFactory.Create(queue);
            var thread    = CreateThread(processor, id);

            var group = new ManagedGroup
            {
                id               = id,
                Cars             = cars,
                MessageProcessor = processor,
                MessageQueue     = queue,
                Thread           = thread
            };

            _groups.Add(id, group);

            foreach (var car in cars)
            {
                _queueLookup.Add(car, queue);
            }

            return(group);
        }
Example #2
0
        private void RebuildManagedGroup(ManagedGroup group)
        {
            var queue     = new MessageQueue();
            var processor = _messageProcessorFactory.Create(queue);
            var thread    = CreateThread(processor, group.id);

            group.MessageQueue     = queue;
            group.MessageProcessor = processor;
            group.Thread           = thread;

            //remove old mapping
            foreach (var car in group.Cars)
            {
                _queueLookup.Remove(car);
            }

            //add new mapping
            foreach (var car in group.Cars)
            {
                _queueLookup.Add(car, queue);
            }
            thread.Start();
        }
        private void RebuildManagedGroup(ManagedGroup group)
        {
            var queue = new MessageQueue();
             var processor = _messageProcessorFactory.Create(queue);
             var thread = CreateThread(processor, group.id);

             group.MessageQueue = queue;
             group.MessageProcessor = processor;
             group.Thread = thread;

             //remove old mapping
             foreach (var car in group.Cars)
             {
            _queueLookup.Remove(car);
             }

             //add new mapping
             foreach (var car in group.Cars)
             {
            _queueLookup.Add(car, queue);
             }
             thread.Start();
        }
        private ManagedGroup CreateGroup(List<Car> cars)
        {
            var id = _groups.Count;
             var queue = new MessageQueue();
             var processor = _messageProcessorFactory.Create(queue);
             var thread = CreateThread(processor, id);

             var group = new ManagedGroup
             {
            id = id,
            Cars = cars,
            MessageProcessor = processor,
            MessageQueue = queue,
            Thread = thread
             };

             _groups.Add(id, group);

             foreach (var car in cars)
             {
            _queueLookup.Add(car, queue);
             }

             return group;
        }