]> gerrit.simantics Code Review - simantics/fmil.git/blob - src/FMI2/fmi2_capi_cs.c
Switch to full JavaSE-11+ compatibility
[simantics/fmil.git] / src / FMI2 / fmi2_capi_cs.c
1 /*\r
2     Copyright (C) 2012 Modelon AB\r
3 \r
4     This program is free software: you can redistribute it and/or modify\r
5     it under the terms of the BSD style license.\r
6 \r
7     This program is distributed in the hope that it will be useful,\r
8     but WITHOUT ANY WARRANTY; without even the implied warranty of\r
9     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
10     FMILIB_License.txt file for more details.\r
11 \r
12     You should have received a copy of the FMILIB_License.txt file\r
13     along with this program. If not, contact Modelon AB <http://www.modelon.com>.\r
14 */\r
15 \r
16 #ifdef __cplusplus \r
17 extern "C" {\r
18 #endif\r
19 \r
20 #include <FMI2/fmi2_capi.h>\r
21 #include <FMI2/fmi2_capi_impl.h>\r
22 \r
23 \r
24 fmi2_status_t fmi2_capi_set_real_input_derivatives(fmi2_capi_t* fmu, const  fmi2_value_reference_t vr[], size_t nvr, const fmi2_integer_t order[], const  fmi2_real_t value[])  \r
25 {\r
26         return fmu->fmi2SetRealInputDerivatives(fmu->c, vr, nvr, order, value);\r
27 }\r
28 \r
29 fmi2_status_t fmi2_capi_get_real_output_derivatives(fmi2_capi_t* fmu, const  fmi2_value_reference_t vr[], size_t nvr, const fmi2_integer_t order[], fmi2_real_t value[])   \r
30 {\r
31         return fmu->fmi2GetRealOutputDerivatives(fmu->c, vr, nvr, order, value);\r
32 }\r
33 \r
34 fmi2_status_t fmi2_capi_cancel_step(fmi2_capi_t* fmu)   \r
35 {\r
36         return fmu->fmi2CancelStep(fmu->c);\r
37 }\r
38 \r
39 fmi2_status_t fmi2_capi_do_step(fmi2_capi_t* fmu, fmi2_real_t currentCommunicationPoint, fmi2_real_t communicationStepSize, fmi2_boolean_t newStep)\r
40 {\r
41         return fmu->fmi2DoStep(fmu->c, currentCommunicationPoint, communicationStepSize, newStep);\r
42 }\r
43 \r
44 /* fmiGetStatus* */\r
45 #define FMIGETSTATUSX(FNAME1, FNAME2,FSTATUSTYPE) \\r
46 fmi2_status_t FNAME1(fmi2_capi_t* fmu, const fmi2_status_kind_t s, FSTATUSTYPE*  value) \\r
47 { \\r
48         return fmu->FNAME2(fmu->c, s, value); \\r
49 }\r
50 \r
51 FMIGETSTATUSX(fmi2_capi_get_status,             fmi2GetStatus,          fmi2_status_t)\r
52 FMIGETSTATUSX(fmi2_capi_get_real_status,                fmi2GetRealStatus,      fmi2_real_t)\r
53 FMIGETSTATUSX(fmi2_capi_get_integer_status,     fmi2GetIntegerStatus,   fmi2_integer_t)\r
54 FMIGETSTATUSX(fmi2_capi_get_boolean_status,     fmi2GetBooleanStatus,   fmi2_boolean_t)\r
55 FMIGETSTATUSX(fmi2_capi_get_string_status,              fmi2GetStringStatus,    fmi2_string_t)\r
56 \r
57 #ifdef __cplusplus\r
58 }\r
59 #endif\r