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; }
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; } } } }