IHMInputOutputRunningInfoProcessClass.php
1.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
/**
* @class IHMInputOutputRunningInfoProcessClass
* @brief Implementation of a IHMInputOutputInfoProcessAbstractClass used to treat a request to get the status of all running process
* @details
*/
class IHMInputOutputRunningInfoProcessClass extends IHMInputOutputInfoProcessAbstractClass
{
/*
* @brief get the list of running job
*/
public function getJobIds($input)
{
return $this->jobsManager->getJobsByStatus('in_progress');
}
/*
* @brief method to marshall the result
*/
public function marshallResult($data)
{
$nFinished = 0;
$nError = 0;
$nInProgress = 0;
$jobsFinished = null;
$jobsInProgress = null;
foreach ($data as $d)
{
if (!$d->getSuccess())
continue;
$jobInfo = $this->jobsManager->updateJobStatus(
$d->getId(),
$d->getStatus() == ProcessStatusEnumClass::RUNNING,
$d->getErrorCode(),
$d->getExecTime());
if (!$jobInfo['success'])
continue;
$jobInfo['runningPath'] = $d->getRunningPath();
switch ($jobInfo['status'])
{
case 'in_progress' :
if (!isset($jobsInProgress))
$jobsInProgress = array();
$jobsInProgress[] = $jobInfo;
++$nInProgress;
break;
case 'done' :
if (!isset($jobsFinished))
$jobsFinished = array();
$jobsFinished[] = $jobInfo;
++$nFinished;
break;
default :
if (!isset($jobsFinished))
$jobsFinished = array();
$jobsFinished[] = $jobInfo;
++$nError;
}
}
return array(
'success' => true,
'nFinished' => $nFinished,
'nError' => $nError,
'nInProgress' => $nInProgress,
'jobsFinished' => $jobsFinished,
'jobsInProgress' => $jobsInProgress);
}
}
?>