40 #ifndef FREERTOSPP_CALLBACK_H 41 #define FREERTOSPP_CALLBACK_H 62 #if FREERTOSCPP_USE_NAMESPACE 75 template<
class Tr =
void,
class Tp1 =
void,
class Tp2 =
void>
87 template<
class Tr,
class Tp>
119 virtual void callback(uint32_t) = 0;
120 #if INCLUDE_xTimerPendFunctionCall 121 void pend(uint32_t parm, TickType_t ticks = portMAX_DELAY) {
124 #if FREERTOSCPP_USE_CHRONO 125 void pend(uint32_t parm,
Time_ms ms) {
130 void pendFromISR(uint32_t parm, BaseType_t* wasWoken) {
142 template<
class Tr =
void,
class Tp1 =
void,
class Tp2 =
void>
148 virtual Tr
callback(Tp1 parm1, Tp2 parm2) {
return (*m_fun)(parm1, parm2); }
152 void setFun(Tr (*fun)(Tp1, Tp2)) { m_fun = fun; }
154 Tr (*m_fun)(Tp1, Tp2);
157 template<
class Tr,
class Tp>
163 virtual Tr
callback(Tp parm) {
return m_fun(parm); }
164 void setFun(Tr (*fun)(Tp)) { m_fun = fun; }
182 template<
class Tc,
class Tr =
void,
class Tp1 =
void,
class Tp2 =
void>
188 virtual Tr
callback(Tp1 parm1, Tp2 parm2) {
return (m_obj->*m_fun)(parm1, parm2); }
195 void setFun(Tr (Tc::*fun)(Tp1, Tp2)) { m_fun = fun; }
198 Tr (Tc::*m_fun)(Tp1, Tp2);
201 template<
class Tc,
class Tr,
class Tp>
207 virtual Tr
callback(Tp parm) {
return (m_obj->*m_fun)(parm); }
209 void setFun(Tr (Tc::*fun)(Tp)) { m_fun = fun; }
215 template<
class Tc,
class Tr>
221 virtual Tr
callback() {
return (m_obj->*m_fun)(); }
223 void setFun(Tr Tc::*fun()) { m_fun = fun; }
230 #if FREERTOSCPP_USE_NAMESPACE Base callback with two parameters.
Definition: CallBack.h:76
MemberFunctionCallback(Tc *obj, Tr(Tc::*fun)(Tp))
Definition: CallBack.h:204
virtual ~MemberFunctionCallback()
Definition: CallBack.h:205
CallBack()
Definition: CallBack.h:102
FunctionCallback(Tr(*fun)(Tp1, Tp2))
Definition: CallBack.h:145
virtual Tr callback()
Definition: CallBack.h:221
void setFun(Tr(Tc::*fun)(Tp))
Definition: CallBack.h:209
constexpr TickType_t ms2ticks(Time_ms ms)
Definition: FreeRTOScpp.h:81
std::chrono::milliseconds Time_ms
Definition: FreeRTOScpp.h:79
virtual ~CallBack()
Definition: CallBack.h:79
Definition: CallBack.h:63
CallBack()
Definition: CallBack.h:116
MemberFunctionCallback(Tc *obj, Tr(Tc::*fun)(Tp1, Tp2))
Definition: CallBack.h:185
void setObj(Tc *obj)
Definition: CallBack.h:208
virtual Tr callback(Tp1, Tp2)=0
void voidCallbackU32(void *cb, uint32_t parm)
Define a "C" Callback trampline suitable for Timer Callbacks.
Definition: CallBack.cpp:42
CallBack()
Definition: CallBack.h:78
virtual ~CallBack()
Definition: CallBack.h:117
void setFun(Tr(*fun)(Tp1, Tp2))
Change the Memberfunction for the Callback.
Definition: CallBack.h:152
CallBack()
Definition: CallBack.h:90
Tc * m_obj
Definition: CallBack.h:211
void setFun(Tr Tc::*fun())
Definition: CallBack.h:223
Tc * m_obj
Definition: CallBack.h:197
virtual Tr callback()
Definition: CallBack.h:175
MemberFunctionCallback(Tc *obj, Tr(Tc::*fun)())
Definition: CallBack.h:218
virtual Tr callback(Tp1 parm1, Tp2 parm2)
Definition: CallBack.h:188
FunctionCallback(Tr(*fun)(Tp))
Definition: CallBack.h:160
virtual Tr callback(Tp1 parm1, Tp2 parm2)
Definition: CallBack.h:148
void setFun(Tr *fun())
Definition: CallBack.h:176
virtual ~FunctionCallback()
Definition: CallBack.h:146
FunctionCallback(Tr(*fun)())
Definition: CallBack.h:172
void setObj(Tc *obj)
Definition: CallBack.h:222
virtual ~CallBack()
Definition: CallBack.h:91
void setFun(Tr(*fun)(Tp))
Definition: CallBack.h:164
virtual ~MemberFunctionCallback()
Definition: CallBack.h:186
Definition: CallBack.h:183
Tc * m_obj
Definition: CallBack.h:225
void setFun(Tr(Tc::*fun)(Tp1, Tp2))
Change the Memberfunction for the Callback.
Definition: CallBack.h:195
virtual Tr callback(Tp parm)
Definition: CallBack.h:163
virtual ~FunctionCallback()
Definition: CallBack.h:161
virtual ~MemberFunctionCallback()
Definition: CallBack.h:219
virtual ~CallBack()
Definition: CallBack.h:103
virtual Tr callback(Tp parm)
Definition: CallBack.h:207
virtual ~FunctionCallback()
Definition: CallBack.h:173
Derived Callback to call to a function.
Definition: CallBack.h:143
void setObj(Tc *obj)
Change the Object for the Callback.
Definition: CallBack.h:192