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