/* Copyright 2017 The MathWorks, Inc. */ #ifndef MATLAB_LIBRARY_HPP #define MATLAB_LIBRARY_HPP #include "matlab_application.hpp" #include <MatlabExecutionInterface/execution_interface.hpp> #include <vector> #include <streambuf> #include <memory> #include <future> #include <complex> namespace matlab { namespace cpplib { using namespace matlab::execution; class MATLABLibrary : public matlab::execution::ExecutionInterface{ public: /** * Destructor * * @throw none */ ~MATLABLibrary(); /** * wait for all figures to be closed **/ void waitForFiguresToClose(); private: friend FutureResult<std::unique_ptr<MATLABLibrary>> initMATLABLibraryAsync(std::shared_ptr<MATLABApplication> application, const std::u16string& ctffilename); /** * Constructor * * @param handle - The internal implementation * * @throw none */ MATLABLibrary(std::shared_ptr<MATLABApplication> application, uint64_t handle); std::shared_ptr<MATLABApplication> appPtr_; }; } } #endif //MATLAB_LIBRARY_HPP