Fork of the official mbed C/C++ SDK provides the software platform and libraries to build your applications. The fork has the documentation converted to Doxygen format

Dependents:   NervousPuppySprintOne NervousPuppySprint2602 Robot WarehouseBot1 ... more

Fork of mbed by mbed official

Revision:
43:aff670d0d510
Parent:
27:7110ebee3484
--- a/FunctionPointer.h	Wed Aug 29 12:44:47 2012 +0100
+++ b/FunctionPointer.h	Wed Oct 24 10:44:49 2012 +0000
@@ -9,76 +9,77 @@
 
 namespace mbed { 
 
-/* Class FunctionPointer
- *  A class for storing and calling a pointer to a static or member void function
+/** A class for storing and calling a pointer to a static or member void function
  */
 class FunctionPointer {
 
 public:
 
-	/* Constructor FunctionPointer
-	 *  Create a FunctionPointer, attaching a static function
-	 * 
-	 * Variables
-	 *  function - The void static function to attach (default is none)
-	 */
-	FunctionPointer(void (*function)(void) = 0);
+    /** Create a FunctionPointer, attaching a static function
+     * 
+     *  @param function The void static function to attach (default is none)
+     */
+    FunctionPointer(void (*function)(void) = 0);
 
-	/* Constructor FunctionPointer
-	 *  Create a FunctionPointer, attaching a member function
-	 * 
-	 * Variables
-	 *  object - The object pointer to invoke the member function on (i.e. the this pointer)
-	 *  function - The address of the void member function to attach 
-	 */
-	template<typename T>	
-	FunctionPointer(T *object, void (T::*member)(void)) {
-		attach(object, member);
-	}
+    /** Create a FunctionPointer, attaching a member function
+     * 
+     *  @param object The object pointer to invoke the member function on (i.e. the this pointer)
+     *  @param function The address of the void member function to attach 
+     */
+    template<typename T>    
+    FunctionPointer(T *object, void (T::*member)(void)) {
+        attach(object, member);
+    }
 
-	/* Function attach
-	 *  Attach a static function
-	 * 
-	 * Variables
-	 *  function - The void static function to attach (default is none)
-	 */
-	void attach(void (*function)(void) = 0);
-	
-	/* Function attach
-	 *  Attach a member function
-	 * 
-	 * Variables
-	 *  object - The object pointer to invoke the member function on (i.e. the this pointer)
-	 *  function - The address of the void member function to attach 
-	 */
-	template<typename T>
-	void attach(T *object, void (T::*member)(void)) {
-		_object = static_cast<void*>(object);
+    /** Attach a static function
+     * 
+     *  @param function The void static function to attach (default is none)
+     */
+    void attach(void (*function)(void) = 0);
+    
+    /** Attach a member function
+     * 
+     *  @param object The object pointer to invoke the member function on (i.e. the this pointer)
+     *  @param function The address of the void member function to attach 
+     */
+    template<typename T>
+    void attach(T *object, void (T::*member)(void)) {
+        _object = static_cast<void*>(object);
         memcpy(_member, (char*)&member, sizeof(member));
-		_membercaller = &FunctionPointer::membercaller<T>;
-		_function = 0;
-	}
+        _membercaller = &FunctionPointer::membercaller<T>;
+        _function = 0;
+    }
 
-	/* Function call
-	 *  Call the attached static or member function
-	 */		
-	void call();
-		
+    /** Call the attached static or member function
+     */        
+    void call();
+        
 private:
 
-	template<typename T>
-	static void membercaller(void *object, char *member) {	
-		T* o = static_cast<T*>(object);
-		void (T::*m)(void);
+    template<typename T>
+    static void membercaller(void *object, char *member) {    
+        T* o = static_cast<T*>(object);
+        void (T::*m)(void);
         memcpy((char*)&m, member, sizeof(m));
-		(o->*m)();
-	}
-	
-	void (*_function)(void);				// static function pointer - 0 if none attached
-	void *_object;							// object this pointer - 0 if none attached
-	char _member[16];						// raw member function pointer storage - converted back by registered _membercaller
-	void (*_membercaller)(void*, char*);	// registered membercaller function to convert back and call _member on _object
-	
+        (o->*m)();
+    }
+    
+    /** Static function pointer - 0 if none attached
+     */
+    void (*_function)(void);
+    
+    /** Object this pointer - 0 if none attached
+     */
+    void *_object;
+    
+    /** Raw member function pointer storage - converted back by registered _membercaller
+     */
+    char _member[16];
+    
+    /** Registered membercaller function to convert back and call _member on _object
+     */
+    void (*_membercaller)(void*, char*);
+    
 };
 
 } // namespace mbed