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) map<string, Batch::FactBatchManager *> *
27 $result = PyDict_New();
29 // on itere sur toutes les clefs de la map
30 for(map<string, FactBatchManager *>::const_iterator it=(* $1).begin(); it!=(* $1).end(); it++) {
31 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) 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(Parametre::const_iterator it=$1.begin(); it!=$1.end(); it++) {
46 string key = (*it).first;
47 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) Parametre & (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 string mk = PyString_AsString(key);
68 PyVersatile PyV = value;
73 $1 = &PM; // $1 est une reference donc on lui passe une adresse
75 catch (GenericException & ex) {
76 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) Parametre (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 string mk = PyString_AsString(key);
102 PyVersatile PyV = value;
109 catch (GenericException & ex) {
110 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) Environnement
124 $result = PyDict_New();
126 // on itere sur toutes les clefs de la map
127 for(Environnement::const_iterator it=$1.begin(); it!=$1.end(); it++) {
128 string key = (*it).first;
129 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) Environnement & (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 string mk = PyString_AsString(key);
150 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) Environnement (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 string mk = PyString_AsString(key);
172 string val = PyString_AsString(value);
181 # // construction d'une string Python a partir d'une string STL
182 %typemap(python,out) 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));