Task.h 435 Bytes
Newer Older
Valentin Platzgummer's avatar
Valentin Platzgummer committed
1 2 3 4 5 6 7 8 9 10 11 12
#ifndef COMMAND_H
#define COMMAND_H

#include <functional>
#include <future>

#include <QVariant>

namespace nemo_interface {

class Task {
public:
Valentin Platzgummer's avatar
Valentin Platzgummer committed
13
  typedef std::function<QVariant(void)> Functor;
Valentin Platzgummer's avatar
Valentin Platzgummer committed
14 15

  Task(const Functor &onExec);
Valentin Platzgummer's avatar
Valentin Platzgummer committed
16
  Task(Functor &&onExec);
Valentin Platzgummer's avatar
Valentin Platzgummer committed
17

Valentin Platzgummer's avatar
Valentin Platzgummer committed
18
  QVariant exec();
Valentin Platzgummer's avatar
Valentin Platzgummer committed
19
  void setOnExec(const Functor &onExec);
Valentin Platzgummer's avatar
Valentin Platzgummer committed
20
  void setOnExec(Functor &&onExec);
Valentin Platzgummer's avatar
Valentin Platzgummer committed
21 22 23 24 25 26 27

private:
  Functor _onExec;
};
} // namespace nemo_interface

#endif // COMMAND_H