4 #include <sigc++/trackable.h>
5 #include <sigc++/signal.h>
16 typedef std::map<std::string, Element> MapType;
20 namespace WFMath {
class TimeDiff; }
28 class Task :
public sigc::trackable {
41 const std::string&
name()
const;
61 const std::vector<TaskUsage>& getUsages()
const;
63 sigc::signal<void> Completed;
65 sigc::signal<void> Progressed;
67 sigc::signal<void> ProgressRateChanged;
69 sigc::signal<void> UsagesChanged;
72 void progressChanged();
77 void updateFromAtlas(
const Atlas::Message::MapType& d);
82 void updatePredictedProgress(
const WFMath::TimeDiff& dt);
84 const std::string m_name;
89 double m_progressRate;
91 std::vector<TaskUsage> m_usages;
103 return m_progressRate;
107 inline const std::vector<TaskUsage>& Task::getUsages()
const {