| 303 | } |
| 304 | |
| 305 | void SetReal(const fmi2ValueReference* vr, std::size_t nvr, const fmi2Real* values) override |
| 306 | { |
| 307 | py_safe_run([this, &vr, nvr, &values](PyGILState_STATE gilState) { |
| 308 | PyObject* vrs = PyList_New(nvr); |
| 309 | PyObject* refs = PyList_New(nvr); |
| 310 | for (int i = 0; i < nvr; i++) { |
| 311 | PyList_SetItem(vrs, i, Py_BuildValue("i", vr[i])); |
| 312 | PyList_SetItem(refs, i, Py_BuildValue("d", values[i])); |
| 313 | } |
| 314 | |
| 315 | auto f = PyObject_CallMethod(pInstance_, "set_real", "(OO)", vrs, refs); |
| 316 | Py_DECREF(vrs); |
| 317 | Py_DECREF(refs); |
| 318 | if (f == nullptr) { |
| 319 | handle_py_exception("[setReal] PyObject_CallMethod", gilState); |
| 320 | } |
| 321 | Py_DECREF(f); |
| 322 | clearLogBuffer(); |
| 323 | }); |
| 324 | } |
| 325 | |
| 326 | void SetInteger(const fmi2ValueReference* vr, std::size_t nvr, const fmi2Integer* values) override |
| 327 | { |
no test coverage detected