00001 #ifndef CONTROLLERFACTORY_H
00002 #define CONTROLLERFACTORY_H
00003
00004 #include "controllerinterface.h"
00005
00006 #include <tools/global.h>
00007
00008 template<typename Key, typename Value>
00009 class QMap;
00010
00011 namespace ui
00012 {
00013 class UiInterface;
00014 }
00015
00016 namespace control
00017 {
00018
00019 struct ControllerFactoryPrivate;
00020
00021 class CONTROL_EXPORT ControllerFactory
00022 {
00023 public:
00024
00025 ControllerFactory(domain::TaskManagerData* data, ui::UiInterface* ui);
00026 ~ControllerFactory();
00027
00028 QList<ControllerInterface*> controllers() const;
00029 ControllerInterface* controllerByType(
00030 ControllerInterface::DataType dataType,
00031 ControllerInterface::ActionType actionType) const;
00032 QList<ControllerInterface*> controllersByAction(
00033 ControllerInterface::ActionType actionType) const;
00034
00035 QMap<ControllerInterface*, QString> failedControllers() const;
00036
00037 private:
00038
00039 ControllerFactoryPrivate* const d;
00040 };
00041
00042 }
00043
00044 #endif