mbed library sources

Dependents:   PA_Boost_test

Fork of mbed-src by mbed official

Revision:
36:ab3ee77451e7
Parent:
19:398f4c622e1b
Child:
305: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