public void into_queue(Client cl) { bool flag; int check = 0; //проверка на наличие заявок, отличных от типа XCHG all_clients++; //клиент +1 for (int i = 0; i < cl.req_max_count; i++) { if (cl.get_request(i).operation != request_type.XCHG) { check++; } } //определяем, в какую очередь поставить клиента if (check == 0) { cl.state = client_state.Queued; //клиент поставлен в очередь in_queue q = clients[0].enqueue; //вызов функции с использованием делегата flag = q(cl); //flag = clients[0].enqueue(cl); //обмен } else { cl.state = client_state.Queued; in_queue q = clients[1].enqueue; //вызов функции с использованием делегата flag = q(cl); //flag = clients[1].enqueue(cl); //прочее } if (!flag) { cl.state = client_state.Refused; //не поставлен refused_clients++; //отказано в обслуживании (все очереди переполнены) } }
private void set_work_time(Client _cl) //определяем время, необходимое на обработку клиента { work_time = 0; for (int i = 0; i < _cl.req_max_count; i++) { if (k_type == kassa_type.N37) //если касса 3-7, то исключаем операции обмена { if (cl.get_request(i).operation != request_type.XCHG) { work_time += cl.get_request(i).service_time; cl.inc_req_done(); //увеличиваем число обработанных заявок } } if (k_type == kassa_type.N12) //если 1-2, то исключаем все операции, кроме обмена { if (cl.get_request(i).operation == request_type.XCHG) { work_time += cl.get_request(i).service_time; cl.inc_req_done(); //увеличиваем число обработанных заявок } } } total_work_time += work_time; //общее время работы }
public void into_queue(Client cl) { bool flag; int check = 0; //проверка на наличие заявок, отличных от типа XCHG all_clients++; //клиент +1 for (int i = 0; i < cl.req_max_count; i++) if (cl.get_request(i).operation != request_type.XCHG) check++; //определяем, в какую очередь поставить клиента if (check == 0) { cl.state = client_state.Queued; //клиент поставлен в очередь in_queue q = clients[0].enqueue; //вызов функции с использованием делегата flag = q(cl); //flag = clients[0].enqueue(cl); //обмен } else { cl.state = client_state.Queued; in_queue q = clients[1].enqueue; //вызов функции с использованием делегата flag = q(cl); //flag = clients[1].enqueue(cl); //прочее } if (!flag) { cl.state = client_state.Refused; //не поставлен refused_clients++; //отказано в обслуживании (все очереди переполнены) } }