Ejemplo n.º 1
0
        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++;               //отказано в обслуживании (все очереди переполнены)
            }
        }
Ejemplo n.º 2
0
 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; //общее время работы
 }
Ejemplo n.º 3
0
 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++; //отказано в обслуживании (все очереди переполнены)
     }
 }