]> SALOME platform Git repositories - modules/kernel.git/blob - src/Batch/Batch_JobId.cxx
Salome HOME
PR: mergefrom_BR_BATCH_22Oct04
[modules/kernel.git] / src / Batch / Batch_JobId.cxx
1 /*
2  * JobId.cxx : 
3  *
4  * Auteur : Ivan DUTKA-MALEN - EDF R&D
5  * Date   : Septembre 2003
6  * Projet : SALOME 2
7  *
8  */
9
10 #include "Batch_JobId.hxx"
11 #include "Batch_BatchManager.hxx"
12 #include <sstream>
13 //#include "MEDMEM_STRING.hxx"
14
15 namespace Batch {
16
17   // Constructeur standard
18   JobId::JobId() : _p_batchmanager(), _reference("undefined")
19   {
20     // Nothing to do
21   }
22
23   // Constructeur avec le pointeur sur le BatchManager associe et avec une reference
24   JobId::JobId(BatchManager * _p_bm, string ref) : _p_batchmanager(_p_bm), _reference(ref)
25   {
26     // Nothing to do
27   }
28
29   // Destructeur
30   JobId::~JobId()
31   {
32     // Nothing to do
33   }
34
35   // Operateur d'affectation entre objets
36   JobId & JobId::operator =(const JobId & jobid)
37   {
38     _p_batchmanager = jobid._p_batchmanager;
39     _reference      = jobid._reference;
40
41     return *this;
42   }
43
44   // Constructeur par recopie
45   JobId::JobId(const JobId & jobid) : _p_batchmanager(jobid._p_batchmanager), _reference(jobid._reference)
46   {
47     // Nothing to do
48   }
49
50   // Accesseur pour la reference interne
51   string JobId::getReference() const
52   {
53     return _reference;
54   }
55
56   // Methode pour le controle du job : retire le job du gestionnaire
57   void JobId::deleteJob() const
58   {
59     assert(_p_batchmanager != 0);
60     _p_batchmanager->deleteJob(*this);
61   }
62    
63   // Methode pour le controle du job : suspend le job en file d'attente
64   void JobId::holdJob() const
65   {
66     assert(_p_batchmanager != 0);
67     _p_batchmanager->holdJob(*this);
68   }
69
70   // Methode pour le controle du job : relache le job suspendu
71   void JobId::releaseJob() const
72   {
73     assert(_p_batchmanager != 0);
74     _p_batchmanager->releaseJob(*this);
75   }
76
77   // Methode pour le controle du job : modifie le job en file d'attente
78   void JobId::alterJob(const Parametre & param, const Environnement & env) const
79   {
80     assert(_p_batchmanager != 0);
81     _p_batchmanager->alterJob(*this, param, env);
82   }
83
84   // Methode pour le controle du job : modifie le job en file d'attente
85   void JobId::alterJob(const Parametre & param) const
86   {
87     assert(_p_batchmanager != 0);
88     _p_batchmanager->alterJob(*this, param);
89   }
90
91   // Methode pour le controle du job : modifie le job en file d'attente
92   void JobId::alterJob(const Environnement & env) const
93   {
94     assert(_p_batchmanager != 0);
95     _p_batchmanager->alterJob(*this, env);
96   }
97
98   // Methode pour le controle du job : renvoie l'etat du job
99   JobInfo JobId::queryJob() const
100   {
101     assert(_p_batchmanager != 0);
102     return _p_batchmanager->queryJob(*this);
103   }
104
105
106   // Methode pour l'interfacage avec Python (SWIG) : affichage en Python
107   string JobId::__str__() const {
108     //MEDMEM::STRING str;
109     ostringstream str;
110     str << "<JobId (" << this << ") : referenced '" << _reference << "'>";
111     return str.str();
112   }
113
114 }