#ifndef COMMAND_H #define COMMAND_H #include <functional> #include <future> #include <QVariant> namespace nemo_interface { class Task { public: typedef std::function<void(std::promise<QVariant> p)> Functor; typedef std::function<bool()> BooleanFunctor; Task(const Functor &onExec); void exec(std::promise<QVariant> p); bool isReady(); // default == true bool isExpired(); // default == false void setOnExec(const Functor &onExec); void setIsReady(const BooleanFunctor &isReady); void setIsExpired(const BooleanFunctor &isExpired); private: Functor _onExec; BooleanFunctor _isExpired; BooleanFunctor _isReady; }; } // namespace nemo_interface #endif // COMMAND_H