public:
// Constructeur et destructeur
//BatchManager(std::string host="localhost") throw(InvalidArgumentException); // connexion a la machine host
- BatchManager(const FactBatchManager * parent, const char * host="localhost") throw(InvalidArgumentException); // connexion a la machine host
+ BatchManager(const Batch::FactBatchManager * parent, const char * host="localhost") throw(InvalidArgumentException); // connexion a la machine host
virtual ~BatchManager();
virtual std::string __repr__() const;
// Recupere le l'identifiant d'un job deja soumis au BatchManager
//virtual const JobId getJobIdByReference(const std::string & ref);
- virtual const JobId getJobIdByReference(const char * ref);
+ virtual const Batch::JobId getJobIdByReference(const char * ref);
// Methodes pour le controle des jobs : virtuelles pures
- virtual const JobId submitJob(const Job & job) = 0; // soumet un job au gestionnaire
- virtual void deleteJob(const JobId & jobid) = 0; // retire un job du gestionnaire
- virtual void holdJob(const JobId & jobid) = 0; // suspend un job en file d'attente
- virtual void releaseJob(const JobId & jobid) = 0; // relache un job suspendu
- virtual void alterJob(const JobId & jobid, const Parametre & param, const Environnement & env) = 0; // modifie un job en file d'attente
- virtual void alterJob(const JobId & jobid, const Parametre & param) = 0; // modifie un job en file d'attente
- virtual void alterJob(const JobId & jobid, const Environnement & env) = 0; // modifie un job en file d'attente
- virtual JobInfo queryJob(const JobId & jobid) = 0; // renvoie l'etat du job
+ virtual const Batch::JobId submitJob(const Batch::Job & job) = 0; // soumet un job au gestionnaire
+ virtual void deleteJob(const Batch::JobId & jobid) = 0; // retire un job du gestionnaire
+ virtual void holdJob(const Batch::JobId & jobid) = 0; // suspend un job en file d'attente
+ virtual void releaseJob(const Batch::JobId & jobid) = 0; // relache un job suspendu
+ virtual void alterJob(const Batch::JobId & jobid, const Batch::Parametre & param, const Batch::Environnement & env) = 0; // modifie un job en file d'attente
+ virtual void alterJob(const Batch::JobId & jobid, const Batch::Parametre & param) = 0; // modifie un job en file d'attente
+ virtual void alterJob(const Batch::JobId & jobid, const Batch::Environnement & env) = 0; // modifie un job en file d'attente
+ virtual Batch::JobInfo queryJob(const Batch::JobId & jobid) = 0; // renvoie l'etat du job
protected:
std::string _hostname; // serveur ou tourne le BatchManager
- std::map< const std::string, const JobId * > jobid_map; // table des jobs deja soumis
- const FactBatchManager * _parent;
+ std::map< const std::string, const Batch::JobId * > jobid_map; // table des jobs deja soumis
+ const Batch::FactBatchManager * _parent;
private:
// Destructeur
virtual ~BatchManagerCatalog();
- static FactBatchManager * getFactBatchManager(const char * type);
- static void addFactBatchManager(const char * type, FactBatchManager * pFBM);
- virtual FactBatchManager * operator() (const char * type) const;
+ static Batch::FactBatchManager * getFactBatchManager(const char * type);
+ static void addFactBatchManager(const char * type, Batch::FactBatchManager * pFBM);
+ virtual Batch::FactBatchManager * operator() (const char * type) const;
virtual std::map<std::string, FactBatchManager *> * dict() const;
virtual std::string __repr__() const;
FactBatchManager(const std::string & type);
virtual ~FactBatchManager();
- virtual BatchManager * operator() (const char * hostname) const = 0;
+ virtual Batch::BatchManager * operator() (const char * hostname) const = 0;
std::string getType() const;
std::string __repr__() const;
}
// Functor
- BatchManager_PBS * FactBatchManager_PBS::operator() (const char * hostname) const
+ BatchManager * FactBatchManager_PBS::operator() (const char * hostname) const
{
MESSAGE("Building new BatchManager_PBS on host '" << hostname << "'");
return new BatchManager_PBS(this, hostname);
FactBatchManager_PBS();
virtual ~FactBatchManager_PBS();
- virtual BatchManager_PBS * operator() (const char * hostname) const;
+ virtual BatchManager * operator() (const char * hostname) const;
protected:
public:
// Constructeurs et destructeur
Job();
- Job(Parametre param);
- Job(Environnement env);
- Job(Parametre param, Environnement env);
+ Job(Batch::Parametre param);
+ Job(Batch::Environnement env);
+ Job(Batch::Parametre param, Batch::Environnement env);
virtual ~Job() {}
// Operateur pour l'affichage sur un stream
friend std::ostream & operator <<(std::ostream & os, const Job & job);
// Accesseurs
- Parametre getParametre() const;
- void setParametre(const Parametre &);
+ Batch::Parametre getParametre() const;
+ void setParametre(const Batch::Parametre &);
// Accesseurs
- Environnement getEnvironnement() const;
- void setEnvironnement(const Environnement &);
+ Batch::Environnement getEnvironnement() const;
+ void setEnvironnement(const Batch::Environnement &);
// Methodes pour l'interfacage avec Python (SWIG)
// TODO : supprimer ces methodes et transferer leur definitions dans SWIG
std::string __repr__() const { return __str__(); }; // SWIG : affichage en Python
protected:
- Parametre _param; // table des parametres batch du job
- Environnement _env; // table des variables d'environnement
+ Batch::Parametre _param; // table des parametres batch du job
+ Batch::Environnement _env; // table des variables d'environnement
private:
virtual ~JobId();
// Constructeur avec le pointeur sur le BatchManager associe et avec une reference
- JobId(BatchManager *, std::string ref);
+ JobId(Batch::BatchManager *, std::string ref);
// Operateur d'affectation entre objets
- virtual JobId & operator =(const JobId &);
+ virtual JobId & operator =(const Batch::JobId &);
// Constructeur par recopie
- JobId(const JobId &);
+ JobId(const Batch::JobId &);
// Accesseur pour la reference interne
virtual std::string getReference() const;
virtual void deleteJob() const; // retire un job du gestionnaire
virtual void holdJob() const; // suspend un job en file d'attente
virtual void releaseJob() const; // relache un job suspendu
- virtual void alterJob(const Parametre & param, const Environnement & env) const; // modifie un job en file d'attente
- virtual void alterJob(const Parametre & param) const; // modifie un job en file d'attente
- virtual void alterJob(const Environnement & env) const; // modifie un job en file d'attente
- virtual void setParametre(const Parametre & param) { return alterJob(param); } // modifie un job en file d'attente
- virtual void setEnvironnement(const Environnement & env) { return alterJob(env); } // modifie un job en file d'attente
+ virtual void alterJob(const Batch::Parametre & param, const Batch::Environnement & env) const; // modifie un job en file d'attente
+ virtual void alterJob(const Batch::Parametre & param) const; // modifie un job en file d'attente
+ virtual void alterJob(const Batch::Environnement & env) const; // modifie un job en file d'attente
+ virtual void setParametre(const Batch::Parametre & param) { return alterJob(param); } // modifie un job en file d'attente
+ virtual void setEnvironnement(const Batch::Environnement & env) { return alterJob(env); } // modifie un job en file d'attente
virtual Batch::JobInfo queryJob() const; // renvoie l'etat du job
// Methodes pour l'interfacage avec Python (SWIG)
std::string __repr__() const { return __str__(); }; // SWIG : affichage en Python
protected:
- BatchManager * _p_batchmanager; // pointeur sur le BatchManager qui controle le job
+ Batch::BatchManager * _p_batchmanager; // pointeur sur le BatchManager qui controle le job
std::string _reference; // reference du job au sein du BatchManager
private:
virtual ~JobInfo();
// Constructeur par recopie
- JobInfo(const JobInfo & jinfo) : _param(jinfo._param), _env(jinfo._env) {};
+ JobInfo(const Batch::JobInfo & jinfo) : _param(jinfo._param), _env(jinfo._env) {};
// Operateur pour l'affichage sur un stream
- friend std::ostream & operator <<(std::ostream & os, const JobInfo & ji);
+ friend std::ostream & operator <<(std::ostream & os, const Batch::JobInfo & ji);
// Accesseurs
- virtual Parametre getParametre() const;
- virtual Environnement getEnvironnement() const;
+ virtual Batch::Parametre getParametre() const;
+ virtual Batch::Environnement getEnvironnement() const;
// Methodes pour l'interfacage avec Python (SWIG)
// TODO : supprimer ces methodes et transferer leur definitions dans SWIG
std::string __repr__() const { return __str__(); }; // SWIG : affichage en Python
protected:
- Parametre _param; // parametres du job
- Environnement _env; // variables d'environnement du job
+ Batch::Parametre _param; // parametres du job
+ Batch::Environnement _env; // variables d'environnement du job
private:
#include "Batch_BatchManager.hxx"
#include "Batch_BatchManagerCatalog.hxx"
#include "Batch_FactBatchManager.hxx"
-using namespace Batch;
%}
/* Les classes exportees en Python */
try {
$action
}
- catch (GenericException & ex) {
- string msg = ex.type + " : " + ex.message;
+ catch (Batch::GenericException & ex) {
+ std::string msg = ex.type + " : " + ex.message;
PyErr_SetString(PyExc_RuntimeWarning, msg.c_str());
return NULL;
}
# // construction d'un dictionnaire Python a partir d'un objet BatchManagerCatalog C++
-%typemap(out) map<string, Batch::FactBatchManager *> *
+%typemap(out) std::map<std::string, Batch::FactBatchManager *> *
{
$result = PyDict_New();
// on itere sur toutes les clefs de la map
- for(map<string, FactBatchManager *>::const_iterator it=(* $1).begin(); it!=(* $1).end(); it++) {
- string key = (*it).first;
+ for(std::map<std::string, Batch::FactBatchManager *>::const_iterator it=(* $1).begin(); it!=(* $1).end(); it++) {
+ std::string key = (*it).first;
PyObject * obj = SWIG_NewPointerObj((void *) (*it).second, SWIGTYPE_p_Batch__FactBatchManager, 0);
PyDict_SetItem($result, PyString_FromString(key.c_str()), obj);
}
# // construction d'un dictionnaire Python a partir d'un objet Parametre C++
-%typemap(out) Parametre
+%typemap(out) Batch::Parametre
{
$result = PyDict_New();
// on itere sur toutes les clefs de la map, et on passe par la classe PyVersatile
// qui convertit un Versatile en PyObject et vice versa
- for(Parametre::const_iterator it=$1.begin(); it!=$1.end(); it++) {
- string key = (*it).first;
- PyVersatile PyV = (*it).second;
+ for(Batch::Parametre::const_iterator it=$1.begin(); it!=$1.end(); it++) {
+ std::string key = (*it).first;
+ Batch::PyVersatile PyV = (*it).second;
PyDict_SetItem($result, PyString_FromString(key.c_str()), PyV);
}
}
# // construction d'un objet Parametre C++ a partir d'un dictionnaire Python
-%typemap(in) Parametre & (Parametre PM)
+%typemap(in) Batch::Parametre & (Batch::Parametre PM)
{
if (!PyDict_Check($input)) {
PyErr_SetString(PyExc_ValueError,"Expected a dictionnary");
PyObject *key, *value;
int pos = 0;
while (PyDict_Next($input, &pos, &key, &value)) {
- string mk = PyString_AsString(key);
- PyVersatile PyV = value;
+ std::string mk = PyString_AsString(key);
+ Batch::PyVersatile PyV = value;
PyV.setName(mk);
PM[mk] = PyV;
}
$1 = &PM; // $1 est une reference donc on lui passe une adresse
}
- catch (GenericException & ex) {
- string msg = ex.type + " : " + ex.message;
+ catch (Batch::GenericException & ex) {
+ std::string msg = ex.type + " : " + ex.message;
PyErr_SetString(PyExc_RuntimeWarning, msg.c_str());
return NULL;
}
# // construction d'un objet Parametre C++ a partir d'un dictionnaire Python
-%typemap(in) Parametre (Parametre PM)
+%typemap(in) Batch::Parametre (Batch::Parametre PM)
{
if (!PyDict_Check($input)) {
PyErr_SetString(PyExc_ValueError,"Expected a dictionnary");
PyObject *key, *value;
int pos = 0;
while (PyDict_Next($input, &pos, &key, &value)) {
- string mk = PyString_AsString(key);
- PyVersatile PyV = value;
+ std::string mk = PyString_AsString(key);
+ Batch::PyVersatile PyV = value;
PyV.setName(mk);
PM[mk] = PyV;
}
$1 = PM;
}
- catch (GenericException & ex) {
- string msg = ex.type + " : " + ex.message;
+ catch (Batch::GenericException & ex) {
+ std::string msg = ex.type + " : " + ex.message;
PyErr_SetString(PyExc_RuntimeWarning, msg.c_str());
return NULL;
}
# // construction d'un dictionnaire Python a partir d'un objet Environnement C++
-%typemap(out) Environnement
+%typemap(out) Batch::Environnement
{
$result = PyDict_New();
// on itere sur toutes les clefs de la map
- for(Environnement::const_iterator it=$1.begin(); it!=$1.end(); it++) {
- string key = (*it).first;
- string val = (*it).second;
+ for(Batch::Environnement::const_iterator it=$1.begin(); it!=$1.end(); it++) {
+ std::string key = (*it).first;
+ std::string val = (*it).second;
PyDict_SetItem($result,
PyString_FromString(key.c_str()),
PyString_FromString(val.c_str()));
# // construction d'un objet Environnement C++ a partir d'un dictionnaire Python
-%typemap(in) Environnement & (Environnement E)
+%typemap(in) Batch::Environnement & (Batch::Environnement E)
{
if (!PyDict_Check($input)) {
PyErr_SetString(PyExc_ValueError,"Expected a dictionnary");
PyObject *key, *value;
int pos = 0;
while (PyDict_Next($input, &pos, &key, &value)) {
- string mk = PyString_AsString(key);
- string val = PyString_AsString(value);
+ std::string mk = PyString_AsString(key);
+ std::string val = PyString_AsString(value);
E[mk] = val;
}
# // construction d'un objet Environnement C++ a partir d'un dictionnaire Python
-%typemap(in) Environnement (Environnement E)
+%typemap(in) Batch::Environnement (Batch::Environnement E)
{
if (!PyDict_Check($input)) {
PyErr_SetString(PyExc_ValueError,"Expected a dictionnary");
PyObject *key, *value;
int pos = 0;
while (PyDict_Next($input, &pos, &key, &value)) {
- string mk = PyString_AsString(key);
- string val = PyString_AsString(value);
+ std::string mk = PyString_AsString(key);
+ std::string val = PyString_AsString(value);
E[mk] = val;
}
# // construction d'une string Python a partir d'une string STL
-%typemap(python,out) string
+%typemap(python,out) std::string
{
$result = PyString_FromString($1.c_str());
}