ChangeFieldOnFinishTransition.h 865 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #include <Transition.h>
  2. #pragma once
  3. class ChangeFieldOnFinishTransition : public Transition {
  4. public:
  5. class Builder : public Transition::Builder {
  6. public:
  7. Builder(size_t id, GroupStateField field, uint16_t arg, std::shared_ptr<Transition::Builder> delgate);
  8. virtual std::shared_ptr<Transition> _build() const override;
  9. private:
  10. const std::shared_ptr<Transition::Builder> delegate;
  11. const GroupStateField field;
  12. const uint16_t arg;
  13. };
  14. ChangeFieldOnFinishTransition(
  15. std::shared_ptr<Transition> delegate,
  16. GroupStateField field,
  17. uint16_t arg,
  18. size_t period
  19. );
  20. virtual bool isFinished() override;
  21. private:
  22. std::shared_ptr<Transition> delegate;
  23. const GroupStateField field;
  24. const uint16_t arg;
  25. bool changeSent;
  26. virtual void step() override;
  27. virtual void childSerialize(JsonObject& json) override;
  28. };