00001 #ifndef _MRTA_ARCHITECTURE_H_ 00002 #define _MRTA_ARCHITECTURE_H_ 00003 00004 #include <QObject> 00005 #include "mrta/taxonomy.h" 00006 00007 namespace rqt_mrta 00008 { 00009 namespace config 00010 { 00011 namespace architecture 00012 { 00013 class RqtMrtaArchitecture; 00014 } 00015 } 00016 } 00017 00018 namespace mrta 00019 { 00020 typedef rqt_mrta::config::architecture::RqtMrtaArchitecture Config; 00021 class Architecture : public QObject 00022 { 00023 Q_OBJECT 00024 public: 00025 Architecture(QObject* parent, Config* config); 00026 Architecture(QObject* parent, const QString& package, 00027 const QString& config_file_path); 00028 virtual ~Architecture(); 00029 QString getPackage() const; 00030 QString getConfigFilePath() const; 00031 QString getName() const; 00032 Taxonomy::AllocationType getAllocationType() const; 00033 Taxonomy::RobotType getRobotType() const; 00034 Taxonomy::TaskType getTaskType() const; 00035 void setName(const QString& name); 00036 void setAllocationType(const Taxonomy::AllocationType& type); 00037 void setRobotType(const Taxonomy::RobotType& type); 00038 void setTaskType(const Taxonomy::TaskType& type); 00039 bool belongs(const Taxonomy::AllocationType& allocation_type, 00040 const Taxonomy::RobotType& robot_type, 00041 const Taxonomy::TaskType& task_type) const; 00042 QString toString() const; 00043 bool operator==(const QString& package) const; 00044 bool operator==(const Architecture& architecture) const; 00045 bool isValid(Taxonomy::AllocationType type) const; 00046 bool isValid(Taxonomy::RobotType type) const; 00047 bool isValid(Taxonomy::TaskType type) const; 00048 00049 private: 00050 QString package_; 00051 QString config_file_path_; 00052 QString name_; 00053 Taxonomy::AllocationType allocation_type_; 00054 Taxonomy::RobotType robot_type_; 00055 Taxonomy::TaskType task_type_; 00056 }; 00057 } 00058 00059 #endif // _MRTA_ARCHITECTURE_H_