-void Layout::block_reserved(Block &block, Train *train)
-{
- if(emitting_block_reserved)
- block_reserve_queue.push_back(BlockReservation(block, train));
- else
- {
- SetFlag setf(emitting_block_reserved);
- signal_block_reserved.emit(block, train);
- while(!block_reserve_queue.empty())
- {
- BlockReservation br = block_reserve_queue.front();
- block_reserve_queue.pop_front();
- signal_block_reserved.emit(br.block, br.train);
- }
- }
-}
-