4 * Auteur : Ivan DUTKA-MALEN - EDF R&D
5 * Date : Septembre 2003
14 #include "Batch_Parametre.hxx"
15 #include "Batch_PyVersatile.hxx"
16 #include "Batch_JobId.hxx"
17 #include "Batch_FactBatchManager.hxx"
20 # // supprime toutes les definitions par defaut => sert au debug
21 # %typemap(in) SWIGTYPE ;
24 # // construction d'un dictionnaire Python a partir d'un objet BatchManagerCatalog C++
25 %typemap(out) std::map<std::string, Batch::FactBatchManager *> *
27 $result = PyDict_New();
29 // on itere sur toutes les clefs de la map
30 for(std::map<std::string, Batch::FactBatchManager *>::const_iterator it=(* $1).begin(); it!=(* $1).end(); it++) {
31 std::string key = (*it).first;
32 PyObject * obj = SWIG_NewPointerObj((void *) (*it).second, SWIGTYPE_p_Batch__FactBatchManager, 0);
33 PyDict_SetItem($result, PyString_FromString(key.c_str()), obj);
38 # // construction d'un dictionnaire Python a partir d'un objet Parametre C++
39 %typemap(out) Batch::Parametre
41 $result = PyDict_New();
43 // on itere sur toutes les clefs de la map, et on passe par la classe PyVersatile
44 // qui convertit un Versatile en PyObject et vice versa
45 for(Batch::Parametre::const_iterator it=$1.begin(); it!=$1.end(); it++) {
46 std::string key = (*it).first;
47 Batch::PyVersatile PyV = (*it).second;
48 PyDict_SetItem($result, PyString_FromString(key.c_str()), PyV);
53 # // construction d'un objet Parametre C++ a partir d'un dictionnaire Python
54 %typemap(in) Batch::Parametre & (Batch::Parametre PM)
56 if (!PyDict_Check($input)) {
57 PyErr_SetString(PyExc_ValueError,"Expected a dictionnary");
62 // on itere sur toutes les clefs du dictionnaire, et on passe par la classe PyVersatile
63 // qui convertit un Versatile en PyObject et vice versa
64 PyObject *key, *value;
66 while (PyDict_Next($input, &pos, &key, &value)) {
67 std::string mk = PyString_AsString(key);
68 Batch::PyVersatile PyV = value;
73 $1 = &PM; // $1 est une reference donc on lui passe une adresse
75 catch (Batch::GenericException & ex) {
76 std::string msg = ex.type + " : " + ex.message;
77 PyErr_SetString(PyExc_RuntimeWarning, msg.c_str());
81 PyErr_SetString(PyExc_RuntimeWarning, "unknown exception");
87 # // construction d'un objet Parametre C++ a partir d'un dictionnaire Python
88 %typemap(in) Batch::Parametre (Batch::Parametre PM)
90 if (!PyDict_Check($input)) {
91 PyErr_SetString(PyExc_ValueError,"Expected a dictionnary");
96 // on itere sur toutes les clefs du dictionnaire, et on passe par la classe PyVersatile
97 // qui convertit un Versatile en PyObject et vice versa
98 PyObject *key, *value;
100 while (PyDict_Next($input, &pos, &key, &value)) {
101 std::string mk = PyString_AsString(key);
102 Batch::PyVersatile PyV = value;
109 catch (Batch::GenericException & ex) {
110 std::string msg = ex.type + " : " + ex.message;
111 PyErr_SetString(PyExc_RuntimeWarning, msg.c_str());
115 PyErr_SetString(PyExc_RuntimeWarning, "unknown exception");
121 # // construction d'un dictionnaire Python a partir d'un objet Environnement C++
122 %typemap(out) Batch::Environnement
124 $result = PyDict_New();
126 // on itere sur toutes les clefs de la map
127 for(Batch::Environnement::const_iterator it=$1.begin(); it!=$1.end(); it++) {
128 std::string key = (*it).first;
129 std::string val = (*it).second;
130 PyDict_SetItem($result,
131 PyString_FromString(key.c_str()),
132 PyString_FromString(val.c_str()));
137 # // construction d'un objet Environnement C++ a partir d'un dictionnaire Python
138 %typemap(in) Batch::Environnement & (Batch::Environnement E)
140 if (!PyDict_Check($input)) {
141 PyErr_SetString(PyExc_ValueError,"Expected a dictionnary");
145 // on itere sur toutes les clefs du dictionnaire
146 PyObject *key, *value;
148 while (PyDict_Next($input, &pos, &key, &value)) {
149 std::string mk = PyString_AsString(key);
150 std::string val = PyString_AsString(value);
154 $1 = &E; // $1 est une reference donc on lui passe une adresse
159 # // construction d'un objet Environnement C++ a partir d'un dictionnaire Python
160 %typemap(in) Batch::Environnement (Batch::Environnement E)
162 if (!PyDict_Check($input)) {
163 PyErr_SetString(PyExc_ValueError,"Expected a dictionnary");
167 // on itere sur toutes les clefs du dictionnaire
168 PyObject *key, *value;
170 while (PyDict_Next($input, &pos, &key, &value)) {
171 std::string mk = PyString_AsString(key);
172 std::string val = PyString_AsString(value);
181 # // construction d'une string Python a partir d'une string STL
182 %typemap(python,out) std::string
184 $result = PyString_FromString($1.c_str());
189 # // construction d'une string STL a partir d'une string Python
190 #%typemap(in) string & (string S)
192 ## if (!PyString_Check($input)) {
193 # PyErr_SetString(PyExc_ValueError,"Expected a string");
197 # S = string(PyString_AsString($input));
198 # $1 = &S; // $1 est une reference donc on lui passe une adresse
203 # // construction d'une string STL a partir d'une string Python
204 #%typemap(in) string (string S)
206 ## if (!PyString_Check($input)) {
207 # PyErr_SetString(PyExc_ValueError,"Expected a string");
211 # S = string(PyString_AsString($input));