/* Copyright 2017 The MathWorks, Inc. */ #ifndef CPPSHAREDLIB_API_HPP #define CPPSHAREDLIB_API_HPP #include "cppsharedlib_api_util.hpp" #include /** * Exported API to be loaded by C++ shared library clients located outside of bin/ folder. */ CPP_RUNTIME_C_API void runtime_create_session(char16_t** options, size_t size); CPP_RUNTIME_C_API void runtime_terminate_session(); CPP_RUNTIME_C_API uint64_t create_mvm_instance_async(const char16_t* name); CPP_RUNTIME_C_API uint64_t create_mvm_instance(const char16_t* name, bool* errFlag); CPP_RUNTIME_C_API void terminate_mvm_instance(const uint64_t mvmHandle); CPP_RUNTIME_C_API void wait_for_figures_to_close(const uint64_t mvmHandle); CPP_RUNTIME_C_API void cppsharedlib_destroy_handles(uintptr_t* handles); CPP_RUNTIME_C_API uintptr_t cppsharedlib_feval_with_completion( const uint64_t matlabHandle, const char* function, size_t nlhs, bool scalar, matlab::data::impl::ArrayImpl** args, size_t nrhs, void(*success)(void*, size_t, bool, matlab::data::impl::ArrayImpl**), void(*exception)(void*, size_t, bool, size_t, const void*), void* p, void* output, void* error, void(*write)(void*, const char16_t*, size_t), void(*deleter)(void*)); CPP_RUNTIME_C_API bool cppsharedlib_cancel_feval_with_completion(uintptr_t taskHandle, bool allowInteruption); CPP_RUNTIME_C_API void cppsharedlib_destroy_task_handle(uintptr_t taskHandle); CPP_RUNTIME_C_API size_t cppsharedlib_get_stacktrace_number(const uintptr_t frameHandle); CPP_RUNTIME_C_API const char* cppsharedlib_get_stacktrace_message(const uintptr_t frameHandle); CPP_RUNTIME_C_API const char16_t* cppsharedlib_get_stackframe_file(const uintptr_t frameHandle, size_t frameNumber); CPP_RUNTIME_C_API const char* cppsharedlib_get_stackframe_func(const uintptr_t frameHandle, size_t frameNumber); CPP_RUNTIME_C_API uint64_t cppsharedlib_get_stackframe_line(const uintptr_t frameHandle, size_t frameNumber); CPP_RUNTIME_C_API int cppsharedlib_run_main(int(*mainfcn)(int, const char**), int argc, const char** argv); #endif /* CPPSHAREDLIB_API_HPP */