class Task
{
protected:
- Task() { }
+ std::string name;
+ unsigned priority;
+ Msp::Time::TimeStamp sleep_timeout;
+
+ Task(const std::string &, unsigned = 0);
public:
virtual ~Task() { }
+ const std::string &get_name() const { return name; }
+
virtual bool get_work(PendingCommand &) = 0;
virtual void process_reply(const char *, unsigned) { }
+
+ unsigned get_priority() const { return priority; }
+ const Msp::Time::TimeStamp &get_sleep_timeout() const { return sleep_timeout; }
+ protected:
+ void sleep(const Msp::Time::TimeDelta &);
};
class CommandQueueTask: public Task
Queue<PendingCommand> queue;
public:
+ CommandQueueTask();
+
virtual bool get_work(PendingCommand &);
void push(const PendingCommand &);
ArduControl &control;
unsigned n_octets;
unsigned octets_remaining;
- unsigned delay;
public:
S88Task(ArduControl &);
{
private:
unsigned serial;
- Msp::Time::TimeStamp next;
public:
MfxAnnounceTask();
private:
ArduControl &control;
unsigned next_address;
- Msp::Time::TimeStamp next;
unsigned size;
unsigned bits;
unsigned misses;
float current;
float base_level;
float peak_level;
- Msp::Time::TimeStamp next_poll;
unsigned next_type;
public: