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