///////////////////////////////////////////////////////////////////////////////////////////////////
// Interface IDreamEvaluator
[
object,
uuid(FF5B9D3D-C36B-49BB-A0A2-E6818BB79367),
local,
helpstring("IDreamEvaluator - interface to DREAM Evaluator"),
pointer_default(unique)
]
interface IDreamEvaluator : IDreamDataSource
{
[helpstring("Plugin initialization - the first function called before using the evaluator")]
HRESULT InitPlugin([in] IDreamPluginInfo* pIPluginInfo);
[helpstring("Prepare a directory for parallel calculation")]
HRESULT PrepareWorkDir([in] BSTR strSourceDir, [in] BSTR strDestinationDir);
[helpstring("Prepare input data needed for the calculation. Called only once.")]
HRESULT InitData([in] IDreamPluginInfo* pIPluginInfo,
[in] IDreamInputParViewer* pIDreamInputParams);
[helpstring("Calculate the likelihood of each proposal during DREAM calculation")]
HRESULT EvaluateProposal([in] IDreamInputParViewer* pInputPar, [in] int sim,
[in] IDreamMatrix* x, [in, out] IDreamMatrix* res,
[in] BSTR strWorkingDir, [in] BSTR strModelDataDir,
[in] BSTR strModelBinDir);
[helpstring("Get description of the last error.")]
HRESULT GetLastError([out] BSTR* strErrorText);
[helpstring("Called after finishing the calculation.")]
HRESULT OnCalculationFinished();
};