#include #include #include #include #include "mlp_priv.h" mlp_runtime *mlp_runtime_new(mlp_context *ctx, mlp_language *lang){ mlp_context_clear_error(ctx) ; mlp_debug(2, "-> Runtime new: %s", mlp_language_get_name(lang)) ; const mlp_interface *iface = mlp_language_get_iface(lang) ; void *runtime = iface->runtime_new(ctx, lang) ; if (mlp_context_has_error(ctx)){ return NULL ; } mlp_runtime *rt = MLP_MALLOC(mlp_runtime) ; rt->language = lang ; rt->handle = runtime ; mlp_debug(2, "<- Runtime new") ; return rt ; } void mlp_runtime_load_library(mlp_context *ctx, mlp_runtime* rt, const char *lib){ mlp_context_clear_error(ctx) ; const mlp_interface *iface = mlp_language_get_iface(rt->language) ; iface->runtime_load_library(ctx, rt, lib) ; } void mlp_runtime_delete(mlp_context *ctx, mlp_runtime* rt){ mlp_context_clear_error(ctx) ; mlp_debug(2, "-> Runtime delete: %s", mlp_language_get_name(mlp_runtime_get_language(rt))) ; const mlp_interface *iface = mlp_language_get_iface(rt->language) ; iface->runtime_delete(ctx, rt) ; free(rt) ; mlp_debug(2, "-> Runtime delete") ; } mlp_language *mlp_runtime_get_language(const mlp_runtime *rt){ return rt->language ; }