00001 #ifndef PriorityController_H_
00002 #define PriorityController_H_
00003
00004 #include <string>
00005 #include <list>
00006 #include <map>
00007 #include <UniXML.h>
00008 #include <Debug.h>
00009 #include "PriorityController_SK.h"
00010
00049 class PriorityController:
00050 public PriorityController_SK
00051 {
00052 public:
00053 PriorityController( UniSetTypes::ObjectId id, xmlNode* cnode, DebugStream& dlog );
00054 virtual ~PriorityController();
00055
00056 struct PInfo
00057 {
00058 UniSetTypes::ObjectId id;
00059 long priority;
00060 };
00061
00062 typedef std::list<PInfo> PriorityList;
00063
00064 struct SelectInfo
00065 {
00066 PriorityList plist;
00067 UniSetTypes::ObjectId id;
00068 bool state;
00069 std::string name;
00070 };
00071
00072
00073 typedef std::map<UniSetTypes::ObjectId,SelectInfo> ItemList;
00074
00075 protected:
00076 virtual void step(){}
00077 virtual void sensorInfo( UniSetTypes::SensorMessage* sm );
00078 virtual void askSensors( UniversalIO::UIOCommand cmd );
00079
00080 DebugStream& dlog;
00081 ItemList lst;
00082
00083 PriorityList defaultList;
00084
00085 private:
00086 };
00087
00088 #endif // PriorityController_H_
00089