Files
IoTManager/include/Class/AsyncActions.h

33 lines
1.3 KiB
C
Raw Normal View History

2020-08-24 13:56:12 +03:00
#pragma once
#include <Arduino.h>
2020-08-24 13:56:12 +03:00
#include <stdint.h>
#include <functional>
// Декларируем тип - сигнатуру метода , который мы готовы принять в данном случае это
// должен быть метод без результата и без параметров.
// Новый тип мы называем AsynсActionCb - хотя можешь назвать вообще как нравиться а что значит callBack
typedef std::function<void()> AsyncActionCb; //метод без результата и параметров
2020-08-24 13:56:12 +03:00
typedef std::function<bool(const String)> AsyncParamActionCb; //метод без результата и параметров
2020-08-24 13:56:12 +03:00
class AsyncActions {
private:
long count;
AsyncActionCb _cb;
AsyncParamActionCb _pcb;
2020-08-24 13:56:12 +03:00
public:
AsyncActions();
void loop();
2020-08-24 13:56:12 +03:00
void setCallback(AsyncActionCb cb) { //передаем внутрь класса функцию любую void функцию без агрументов
_cb = cb;
}
void setCallback(AsyncParamActionCb cb) { //передаем внутрь класса функцию любую void функцию с аргументами
_pcb = cb;
}
};
2020-08-24 13:56:12 +03:00
extern AsyncActions* async;