Пример #1
0
 private function createJobDetails(Packet $packet)
 {
     if ($packet->getType() === PacketType::JOB_ASSIGN) {
         $details = new JobDetails($packet->getArgument(1), $packet->getArgument(2), null, null);
     } else {
         $details = new JobDetails($packet->getArgument(1), $packet->getArgument(3), $packet->getArgument(2), null);
     }
     $details->jobHandle = $packet->getArgument(0);
     $details->connection = $this->connection;
     return $details;
 }
Пример #2
0
 private function updateJobDetails(Packet $packet)
 {
     $packetType = $packet->getType();
     $handle = $packet->getArgument(0);
     $job = $this->findJob($handle);
     if (!$job && $packetType === PacketType::JOB_CREATED) {
         foreach ($this->jobList as $job) {
             if ($job->jobHandle === null) {
                 $job->jobHandle = $handle;
                 break;
             }
         }
     } else {
         if ($job) {
             switch ($packetType) {
                 case PacketType::WORK_STATUS:
                     $job->numerator = (int) $packet->getArgument(1);
                     $job->denominator = (int) $packet->getArgument(2);
                     $job->triggerCallback('status');
                     break;
                 case PacketType::WORK_WARNING:
                     $job->data = $packet->getArgument(1);
                     $job->triggerCallback('warning');
                     break;
                 case PacketType::WORK_COMPLETE:
                 case PacketType::WORK_EXCEPTION:
                     $job->data = $packet->getArgument(1);
                     $job->result = $job->result . $job->data;
                     $job->finished = true;
                     $job->triggerCallback($packetType == PacketType::WORK_COMPLETE ? 'complete' : 'warning');
                     break;
                 case PacketType::WORK_FAIL:
                     $job->finished = true;
                     $job->triggerCallback('fail');
                     break;
                 case PacketType::WORK_DATA:
                     $job->data = $packet->getArgument(1);
                     $job->result = $job->result . $job->data;
                     $job->triggerCallback('data');
                     break;
             }
         }
     }
 }