mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-27 06:32:19 +03:00
working example of callback with date passing inside and outside
This commit is contained in:
@@ -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;
|
||||
Reference in New Issue
Block a user