108 lines
3.5 KiB
C++
108 lines
3.5 KiB
C++
|
/* Copyright 2017 The MathWorks, Inc. */
|
||
|
|
||
|
#ifndef ENGINE_FACTORY_HPP
|
||
|
#define ENGINE_FACTORY_HPP
|
||
|
|
||
|
#include <vector>
|
||
|
#include <string>
|
||
|
#include <memory>
|
||
|
#include "engine_util.hpp"
|
||
|
|
||
|
namespace matlab {
|
||
|
|
||
|
namespace engine {
|
||
|
|
||
|
using namespace matlab::execution;
|
||
|
|
||
|
class MATLABEngine;
|
||
|
|
||
|
/**
|
||
|
* Start MATLAB synchronously with startup options
|
||
|
*
|
||
|
* @param options - Startup options used to launch MATLAB
|
||
|
* @return std::unique_ptr<MATLABEngine> - A unique pointer of MATLABEngine object
|
||
|
*
|
||
|
* @throw EngineException if failed to start MATLAB
|
||
|
*/
|
||
|
std::unique_ptr<MATLABEngine> startMATLAB(const std::vector<std::u16string>& options = std::vector<std::u16string>());
|
||
|
|
||
|
/**
|
||
|
* Start MATLAB asynchronously with startup options
|
||
|
*
|
||
|
* @param options - Startup options used to launch MATLAB
|
||
|
* @return FutureResult<std::unique_ptr<MATLABEngine>> - A future of a unique pointer of a MATLABEngine object
|
||
|
*
|
||
|
* @throw none
|
||
|
*/
|
||
|
FutureResult<std::unique_ptr<MATLABEngine>> startMATLABAsync(const std::vector<std::u16string>& options = std::vector<std::u16string>());
|
||
|
|
||
|
/**
|
||
|
* Find all shared MATLAB sessions synchronously
|
||
|
*
|
||
|
* @return std::vector<std::u16string> - A vector of names of shared MATLAB sessions
|
||
|
*
|
||
|
* @throw none
|
||
|
*/
|
||
|
std::vector<std::u16string> findMATLAB();
|
||
|
|
||
|
/**
|
||
|
* Find all shared MATLAB sessions synchronously
|
||
|
*
|
||
|
* @return FutureResult<std::vector<std::u16string>> - A future of a vector of names of shared MATLAB sessions
|
||
|
*
|
||
|
* @throw none
|
||
|
*/
|
||
|
FutureResult<std::vector<std::u16string>> findMATLABAsync();
|
||
|
|
||
|
/**
|
||
|
* Start or connect to a shared MATLAB session synchronously
|
||
|
*
|
||
|
* @return std::unique_ptr<MATLABEngine> - A unique pointer of a MATLABEngine object
|
||
|
*
|
||
|
* @throw EngineException if failed to start or connect to a shared MATLAB session
|
||
|
*/
|
||
|
std::unique_ptr<MATLABEngine> connectMATLAB();
|
||
|
|
||
|
/**
|
||
|
* Connect to a shared MATLAB session synchronously
|
||
|
*
|
||
|
* @param std::u16string - The name of a shared MATLAB session
|
||
|
* @return std::unique_ptr<MATLABEngine> - A unique pointer of a MATLABEngine object
|
||
|
*
|
||
|
* @throw EngineException if failed to connect to a shared MATLAB session
|
||
|
*/
|
||
|
std::unique_ptr<MATLABEngine> connectMATLAB(const std::u16string& name);
|
||
|
|
||
|
/**
|
||
|
* Start or connect to a shared MATLAB session asynchronously
|
||
|
*
|
||
|
* @return FutureResult<std::unique_ptr<MATLABEngine>> - A future of a unique pointer of a MATLABEngine object
|
||
|
*
|
||
|
* @throw none
|
||
|
*/
|
||
|
FutureResult<std::unique_ptr<MATLABEngine>> connectMATLABAsync();
|
||
|
|
||
|
/**
|
||
|
* Connect to a shared MATLAB session asynchronously
|
||
|
*
|
||
|
* @param std::u16string - The name of a shared MATLAB session
|
||
|
* @return FutureResult<std::unique_ptr<MATLABEngine>> - A future of a unique pointer of a MATLABEngine object
|
||
|
*
|
||
|
* @throw none
|
||
|
*/
|
||
|
FutureResult<std::unique_ptr<MATLABEngine>> connectMATLABAsync(const std::u16string& name);
|
||
|
|
||
|
/**
|
||
|
* Terminate the engine client. The Engine application will be no longer able to start MATLAB after calling this function.
|
||
|
*
|
||
|
* @return void
|
||
|
*
|
||
|
* @throw none
|
||
|
*/
|
||
|
void terminateEngineClient();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
#endif //ENGINE_FACTORY_HPP
|