--- /dev/null
+#ifndef fmi1_xml_model_decription_impl_h_\r
+#define fmi1_xml_model_decription_impl_h_\r
+\r
+#include <stdarg.h>\r
+\r
+#include <JM/jm_callbacks.h>\r
+#include <JM/jm_vector.h>\r
+#include <JM/jm_named_ptr.h>\r
+#include <JM/jm_string_set.h>\r
+#include <FMI1/fmi1_xml_model_description.h>\r
+\r
+#include "fmi1_xml_unit_impl.h"\r
+#include "fmi1_xml_type_impl.h"\r
+#include "fmi1_xml_variable_impl.h"\r
+#include "fmi1_xml_capabilities_impl.h"\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+typedef enum fmi1_xml_model_description_status_enu_t {\r
+ fmi1_xml_model_description_enu_empty,\r
+ fmi1_xml_model_description_enu_ok,\r
+ fmi1_xml_model_description_enu_error\r
+} fmi1_xml_model_description_status_enu_t;\r
+\r
+/* ModelDescription is the entry point for the package*/\r
+struct fmi1_xml_model_description_t {\r
+\r
+ jm_callbacks* callbacks;\r
+\r
+ fmi1_xml_model_description_status_enu_t status;\r
+\r
+ jm_vector(char) fmi1_xml_standard_version;\r
+\r
+ jm_vector(char) modelName;\r
+\r
+ jm_vector(char) modelIdentifier;\r
+\r
+ jm_vector(char) GUID;\r
+\r
+ jm_vector(char) description;\r
+\r
+ jm_vector(char) author;\r
+\r
+ jm_vector(char) version;\r
+ jm_vector(char) generationTool;\r
+ jm_vector(char) generationDateAndTime;\r
+\r
+ fmi1_variable_naming_convension_enu_t namingConvension;\r
+\r
+ unsigned int numberOfContinuousStates;\r
+\r
+ unsigned int numberOfEventIndicators;\r
+\r
+ double defaultExperimentStartTime;\r
+\r
+ double defaultExperimentStopTime;\r
+\r
+#define FMI1_DEFAULT_EXPERIMENT_TOLERANCE 1e-4\r
+\r
+ double defaultExperimentTolerance;\r
+\r
+ jm_vector(jm_voidp) vendorList;\r
+\r
+ jm_vector(jm_named_ptr) unitDefinitions;\r
+ jm_vector(jm_named_ptr) displayUnitDefinitions;\r
+\r
+ fmi1_xml_type_definitions_t typeDefinitions;\r
+\r
+ jm_string_set descriptions;\r
+\r
+ jm_vector(jm_named_ptr) variablesByName;\r
+\r
+ jm_vector(jm_voidp)* variablesOrigOrder;\r
+\r
+ jm_vector(jm_voidp)* variablesByVR;\r
+\r
+ jm_vector(jm_voidp)* inputVariables;\r
+\r
+ jm_vector(jm_voidp)* outputVariables;\r
+\r
+ fmi1_fmu_kind_enu_t fmuKind;\r
+\r
+ fmi1_xml_capabilities_t *capabilities;\r
+\r
+ jm_vector(char) entryPoint;\r
+ jm_vector(char) mimeType;\r
+ int manual_start;\r
+ jm_vector(jm_string) additionalModels;\r
+};\r
+\r
+void fmi1_xml_report_error(fmi1_xml_model_description_t* md, const char* module, const char* fmt, ...);\r
+\r
+void fmi1_xml_report_error_v(fmi1_xml_model_description_t* md, const char* module, const char* fmt, va_list ap);\r
+\r
+void fmi1_xml_report_warning(fmi1_xml_model_description_t* md, const char* module, const char* fmt, ...);\r
+\r
+void fmi1_xml_report_warning_v(fmi1_xml_model_description_t* md, const char* module, const char* fmt, va_list ap);\r
+\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#endif\r
+\r