| 324 | } |
| 325 | |
| 326 | void SetInteger(const fmi2ValueReference* vr, std::size_t nvr, const fmi2Integer* values) override |
| 327 | { |
| 328 | py_safe_run([this, &vr, nvr, &values](PyGILState_STATE gilState) { |
| 329 | PyObject* vrs = PyList_New(nvr); |
| 330 | PyObject* refs = PyList_New(nvr); |
| 331 | for (int i = 0; i < nvr; i++) { |
| 332 | PyList_SetItem(vrs, i, Py_BuildValue("i", vr[i])); |
| 333 | PyList_SetItem(refs, i, Py_BuildValue("i", values[i])); |
| 334 | } |
| 335 | |
| 336 | auto f = PyObject_CallMethod(pInstance_, "set_integer", "(OO)", vrs, refs); |
| 337 | Py_DECREF(vrs); |
| 338 | Py_DECREF(refs); |
| 339 | if (f == nullptr) { |
| 340 | handle_py_exception("[setInteger] PyObject_CallMethod", gilState); |
| 341 | } |
| 342 | Py_DECREF(f); |
| 343 | clearLogBuffer(); |
| 344 | }); |
| 345 | } |
| 346 | |
| 347 | void SetBoolean(const fmi2ValueReference* vr, std::size_t nvr, const fmi2Boolean* values) override |
| 348 | { |
no test coverage detected