working example of callback with date passing inside and outside

This commit is contained in:
Dmitry Borisenko
2020-08-24 15:09:43 +03:00
parent e44d2dc793
commit ce7c550410
3 changed files with 43 additions and 13 deletions

View File

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