Command.h 466 Bytes
Newer Older
Valentin Platzgummer's avatar
Valentin Platzgummer committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
#ifndef COMMAND_H
#define COMMAND_H

#include <QFuture>
#include <functional>

namespace nemo_interface {

class Command {
public:
  enum class ERROR {
    NO_ERROR,
    NETWORK_TIMEOUT,
    PARAMETER_ERROR,
    UNEXPECTED_SERVER_RESPONSE
  };

  typedef QFuture<ERROR> ReturnType;
  typedef std::function<ReturnType()> Functor;

  Command(Functor onExec);

  QFuture<ERROR> exec();

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

#endif // COMMAND_H