#ifndef ClassLoader__H
#define ClassLoader__H
#include "meta/meta_modelica.h"
#include "util/modelica.h"
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>

#ifdef __cplusplus
extern "C" {
#endif

extern struct record_description Absyn_ClassDef_PARTS__desc;

extern struct record_description Absyn_ClassPart_PROTECTED__desc;

extern struct record_description Absyn_ClassPart_PUBLIC__desc;

extern struct record_description Absyn_Path_IDENT__desc;

extern struct record_description Absyn_Program_PROGRAM__desc;

extern struct record_description Absyn_Within_TOP__desc;

extern struct record_description Absyn_Within_WITHIN__desc;

extern struct record_description ClassLoader_LoadFileStrategy_STRATEGY__HASHTABLE__desc;

extern struct record_description ClassLoader_LoadFileStrategy_STRATEGY__ON__DEMAND__desc;

extern struct record_description ClassLoader_PackageOrder_CLASSLOAD__desc;

extern struct record_description ClassLoader_PackageOrder_CLASSPART__desc;

extern struct record_description ClassLoader_PackageOrder_ELEMENT__desc;

extern struct record_description ErrorTypes_Message_MESSAGE__desc;

extern struct record_description ErrorTypes_MessageType_GRAMMAR__desc;

extern struct record_description ErrorTypes_MessageType_SCRIPTING__desc;

extern struct record_description ErrorTypes_MessageType_TRANSLATION__desc;

extern struct record_description ErrorTypes_Severity_ERROR__desc;

extern struct record_description ErrorTypes_Severity_NOTIFICATION__desc;

extern struct record_description ErrorTypes_Severity_WARNING__desc;

extern struct record_description Flags_ConfigFlag_CONFIG__FLAG__desc;

extern struct record_description Flags_DebugFlag_DEBUG__FLAG__desc;

extern struct record_description Flags_FlagData_BOOL__FLAG__desc;

extern struct record_description Flags_FlagData_ENUM__FLAG__desc;

extern struct record_description Flags_FlagVisibility_EXTERNAL__desc;

extern struct record_description Flags_ValidOptions_STRING__OPTION__desc;

extern struct record_description SourceInfo_SOURCEINFO__desc;


#define boxptr_ClassLoader_getProgramFromStrategy omc_ClassLoader_getProgramFromStrategy


DLLDirection
void omc_ClassLoader_checkOnLoadMessage(threadData_t *threadData, modelica_metatype _p1);
#define boxptr_ClassLoader_checkOnLoadMessage omc_ClassLoader_checkOnLoadMessage
static const MMC_DEFSTRUCTLIT(boxvar_lit_ClassLoader_checkOnLoadMessage,2,0) {(void*) boxptr_ClassLoader_checkOnLoadMessage,0}};
#define boxvar_ClassLoader_checkOnLoadMessage MMC_REFSTRUCTLIT(boxvar_lit_ClassLoader_checkOnLoadMessage)


#define boxptr_ClassLoader_packageOrderName omc_ClassLoader_packageOrderName


#define boxptr_ClassLoader_getPackageContentNamesinParts omc_ClassLoader_getPackageContentNamesinParts


#define boxptr_ClassLoader_makeClassLoad omc_ClassLoader_makeClassLoad


#define boxptr_ClassLoader_makeClassPart omc_ClassLoader_makeClassPart


#define boxptr_ClassLoader_getBothPackageAndFilename omc_ClassLoader_getBothPackageAndFilename


DLLDirection
modelica_metatype omc_ClassLoader_parsePackageFile(threadData_t *threadData, modelica_string _name, modelica_metatype _strategy, modelica_boolean _expectPackage, modelica_metatype _w1, modelica_string _pack, modelica_boolean _encrypted);
DLLDirection
modelica_metatype boxptr_ClassLoader_parsePackageFile(threadData_t *threadData, modelica_metatype _name, modelica_metatype _strategy, modelica_metatype _expectPackage, modelica_metatype _w1, modelica_metatype _pack, modelica_metatype _encrypted);
static const MMC_DEFSTRUCTLIT(boxvar_lit_ClassLoader_parsePackageFile,2,0) {(void*) boxptr_ClassLoader_parsePackageFile,0}};
#define boxvar_ClassLoader_parsePackageFile MMC_REFSTRUCTLIT(boxvar_lit_ClassLoader_parsePackageFile)


#define boxptr_ClassLoader_mergeBefore omc_ClassLoader_mergeBefore


DLLDirection
modelica_metatype omc_ClassLoader_loadClassFromMp(threadData_t *threadData, modelica_string _id, modelica_string _path, modelica_string _name, modelica_boolean _isDir, modelica_metatype _optEncoding, modelica_boolean _encrypted);
DLLDirection
modelica_metatype boxptr_ClassLoader_loadClassFromMp(threadData_t *threadData, modelica_metatype _id, modelica_metatype _path, modelica_metatype _name, modelica_metatype _isDir, modelica_metatype _optEncoding, modelica_metatype _encrypted);
static const MMC_DEFSTRUCTLIT(boxvar_lit_ClassLoader_loadClassFromMp,2,0) {(void*) boxptr_ClassLoader_loadClassFromMp,0}};
#define boxvar_ClassLoader_loadClassFromMp MMC_REFSTRUCTLIT(boxvar_lit_ClassLoader_loadClassFromMp)


DLLDirection
modelica_metatype omc_ClassLoader_loadClass(threadData_t *threadData, modelica_metatype _inPath, modelica_metatype _priorityList, modelica_string _modelicaPath, modelica_metatype _encoding, modelica_boolean _requireExactVersion, modelica_boolean _encrypted);
DLLDirection
modelica_metatype boxptr_ClassLoader_loadClass(threadData_t *threadData, modelica_metatype _inPath, modelica_metatype _priorityList, modelica_metatype _modelicaPath, modelica_metatype _encoding, modelica_metatype _requireExactVersion, modelica_metatype _encrypted);
static const MMC_DEFSTRUCTLIT(boxvar_lit_ClassLoader_loadClass,2,0) {(void*) boxptr_ClassLoader_loadClass,0}};
#define boxvar_ClassLoader_loadClass MMC_REFSTRUCTLIT(boxvar_lit_ClassLoader_loadClass)

#ifdef __cplusplus
}
#endif
#endif
