Go to the documentation of this file.00001 #ifndef _MRTA_STATE_MONITOR_H_
00002 #define _MRTA_STATE_MONITOR_H_
00003
00004 #include <QVector>
00005 #include <QObject>
00006 #include <ros/duration.h>
00007
00008 namespace mrta
00009 {
00010 class SampleHolder;
00011 class StateMonitor : public QObject
00012 {
00013 Q_OBJECT
00014 public:
00015 StateMonitor(QObject* parent, const ros::Duration& timeout,
00016 size_t count_states);
00017 virtual ~StateMonitor();
00018 SampleHolder* getSampleHolder(size_t index) const;
00019 void setTimeout(ros::Duration timeout);
00020 void update(size_t index);
00021
00022 signals:
00023 void changed();
00024 void updated(size_t index, bool up_to_date);
00025
00026 private:
00027 QVector<SampleHolder*> sample_holders_;
00028
00029 private slots:
00030 void updated(bool up_to_date);
00031 };
00032 }
00033
00034 #endif // _MRTA_STATE_MONITOR_H_