Newer
Older
Russell Taylor
committed
#ifndef MANTID_KERNEL_FRAMEWORKMANAGER_H_
#define MANTID_KERNEL_FRAMEWORKMANAGER_H_
Russell Taylor
committed
Russell Taylor
committed
//----------------------------------------------------------------------
// Includes
//----------------------------------------------------------------------
#include "System.h"
Russell Taylor
committed
#include <string>
Russell Taylor
committed
namespace Mantid
{
Russell Taylor
committed
namespace Kernel
{
Russell Taylor
committed
Russell Taylor
committed
//----------------------------------------------------------------------
// Forward declarations
//----------------------------------------------------------------------
Russell Taylor
committed
class IAlgorithm;
class Workspace;
Dickon Champion
committed
class AlgorithmManager;
Russell Taylor
committed
class WorkspaceFactory;
class AnalysisDataService;
Russell Taylor
committed
Russell Taylor
committed
/** @class FrameworkManager FrameworkManager.h Kernel/FrameworkManager.h
The main public API via which users interact with the Mantid framework.
@author Russell Taylor, Tessella Support Services plc
@date 05/10/2007
Copyright © 2007 STFC Rutherford Appleton Laboratories
Russell Taylor
committed
This file is part of Mantid.
Mantid is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
Russell Taylor
committed
Russell Taylor
committed
Mantid is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
File change history is stored at: <https://svn.mantidproject.org/mantid/trunk/Code/Mantid>.
Code Documentation is available at: <http://doxygen.mantidproject.org>
Russell Taylor
committed
*/
class DLLExport FrameworkManager
Russell Taylor
committed
{
public:
Russell Taylor
committed
FrameworkManager();
virtual ~FrameworkManager();
Russell Taylor
committed
Russell Taylor
committed
/// Creates all of the required services
void initialize();
/// Clears all memory associated with the AlgorithmManager
void clear();
/// Creates and instance of an algorithm
IAlgorithm* createAlgorithm(const std::string& algName);
/// Creates an instance of an algorithm and sets the properties provided
Russell Taylor
committed
IAlgorithm* createAlgorithm(const std::string& algName, const std::string& propertiesArray);
/// Creates an instance of an algorithm, sets the properties provided & then executes it.
Russell Taylor
committed
IAlgorithm* exec(const std::string& algName, const std::string& propertiesArray);
Russell Taylor
committed
/// Returns a shared pointer to the workspace requested
Russell Taylor
committed
Workspace* getWorkspace(const std::string& wsName);
Russell Taylor
committed
private:
/// Static reference to the logger class
Russell Taylor
committed
/// Pointer to the Algorithm Factory instance
Dickon Champion
committed
AlgorithmManager *algManager;
Russell Taylor
committed
/// Pointer to the Workspace Factory instance
Russell Taylor
committed
WorkspaceFactory *workFactory;
Russell Taylor
committed
/// Pointer to the Analysis Data Service
Russell Taylor
committed
AnalysisDataService *data;
Russell Taylor
committed
/// Pointer to the Configuration Service
Russell Taylor
committed
Russell Taylor
committed
};
Russell Taylor
committed
} // namespace Kernel
} // namespace Mantid
Russell Taylor
committed
Russell Taylor
committed
#endif /*MANTID_KERNEL_FRAMEWORKMANAGER_H_*/