Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: api/Ticker.h
- Revision:
- 36:ab3ee77451e7
- Parent:
- 19:398f4c622e1b
- Child:
- 304:89b9c3a9a045
--- a/api/Ticker.h Mon Oct 21 11:45:04 2013 +0100
+++ b/api/Ticker.h Wed Oct 23 14:15:04 2013 +0100
@@ -18,7 +18,6 @@
#include "TimerEvent.h"
#include "FunctionPointer.h"
-#include "CallChain.h"
namespace mbed {
@@ -63,34 +62,9 @@
*
* @param fptr pointer to the function to be called
* @param t the time between calls in seconds
- *
- * @returns
- * The function object created for 'fptr'
*/
- pFunctionPointer_t attach(void (*fptr)(void), float t) {
- return attach_us(fptr, t * 1000000.0f);
- }
-
- /** Add a function to be called by the Ticker at the end of the call chain
- *
- * @param fptr the function to add
- *
- * @returns
- * The function object created for 'fptr'
- */
- pFunctionPointer_t add_function(void (*fptr)(void)) {
- return add_function_helper(fptr);
- }
-
- /** Add a function to be called by the Ticker at the beginning of the call chain
- *
- * @param fptr the function to add
- *
- * @returns
- * The function object created for 'fptr'
- */
- pFunctionPointer_t add_function_front(void (*fptr)(void)) {
- return add_function_helper(fptr, true);
+ void attach(void (*fptr)(void), float t) {
+ attach_us(fptr, t * 1000000.0f);
}
/** Attach a member function to be called by the Ticker, specifiying the interval in seconds
@@ -98,54 +72,20 @@
* @param tptr pointer to the object to call the member function on
* @param mptr pointer to the member function to be called
* @param t the time between calls in seconds
- *
- * @returns
- * The function object created for 'tptr' and 'mptr'
*/
template<typename T>
- pFunctionPointer_t attach(T* tptr, void (T::*mptr)(void), float t) {
- return attach_us(tptr, mptr, t * 1000000.0f);
- }
-
- /** Add a function to be called by the Ticker at the end of the call chain
- *
- * @param tptr pointer to the object to call the member function on
- * @param mptr pointer to the member function to be called
- *
- * @returns
- * The function object created for 'tptr' and 'mptr'
- */
- template<typename T>
- pFunctionPointer_t add_function(T* tptr, void (T::*mptr)(void)) {
- return add_function_helper(tptr, mptr);
- }
-
- /** Add a function to be called by the Ticker at the beginning of the call chain
- *
- * @param tptr pointer to the object to call the member function on
- * @param mptr pointer to the member function to be called
- *
- * @returns
- * The function object created for 'tptr' and 'mptr'
- */
- template<typename T>
- pFunctionPointer_t add_function_front(T* tptr, void (T::*mptr)(void)) {
- return add_function_helper(tptr, mptr, true);
+ void attach(T* tptr, void (T::*mptr)(void), float t) {
+ attach_us(tptr, mptr, t * 1000000.0f);
}
/** Attach a function to be called by the Ticker, specifiying the interval in micro-seconds
*
* @param fptr pointer to the function to be called
* @param t the time between calls in micro-seconds
- *
- * @returns
- * The function object created for 'fptr'
*/
- pFunctionPointer_t attach_us(void (*fptr)(void), unsigned int t) {
- _chain.clear();
- pFunctionPointer_t pf = _chain.add(fptr);
+ void attach_us(void (*fptr)(void), unsigned int t) {
+ _function.attach(fptr);
setup(t);
- return pf;
}
/** Attach a member function to be called by the Ticker, specifiying the interval in micro-seconds
@@ -153,50 +93,23 @@
* @param tptr pointer to the object to call the member function on
* @param mptr pointer to the member function to be called
* @param t the time between calls in micro-seconds
- *
- * @returns
- * The function object created for 'tptr' and 'mptr'
*/
template<typename T>
- pFunctionPointer_t attach_us(T* tptr, void (T::*mptr)(void), unsigned int t) {
- _chain.clear();
- pFunctionPointer_t pf = _chain.add(tptr, mptr);
+ void attach_us(T* tptr, void (T::*mptr)(void), unsigned int t) {
+ _function.attach(tptr, mptr);
setup(t);
- return pf;
}
/** Detach the function
*/
void detach();
- /** Remove a function from the Ticker's call chain
- *
- * @param pf the function object to remove
- *
- * @returns
- * true if the function was found and removed, false otherwise
- */
- bool remove_function(pFunctionPointer_t pf) {
- bool res = _chain.remove(pf);
- if (res && _chain.size() == 0)
- detach();
- return res;
- }
-
protected:
void setup(unsigned int t);
- pFunctionPointer_t add_function_helper(void (*fptr)(void), bool front=false);
virtual void handler();
- template<typename T>
- pFunctionPointer_t add_function_helper(T* tptr, void (T::*mptr)(void), bool front=false) {
- if (_chain.size() == 0)
- return NULL;
- return front ? _chain.add_front(tptr, mptr) : _chain.add(tptr, mptr);
- }
-
unsigned int _delay;
- CallChain _chain;
+ FunctionPointer _function;
};
} // namespace mbed