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.
Dependencies: mbed-rtos EthernetInterface FatFileSystemCpp MCP23S17 SDFileSystem mbed
Fork of HTTPServerHelloWorld by
Diff: mbed/FunctionPointer.h
- Revision:
- 4:a19825caaf41
- Parent:
- 3:5dc0023e6284
- Child:
- 5:df012c2caf40
--- a/mbed/FunctionPointer.h Fri Jan 31 23:19:28 2014 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-/* mbed Microcontroller Library - FunctionPointer
- * Copyright (c) 2007-2009 ARM Limited. All rights reserved.
- * sford
- */
-
-#ifndef MBED_FUNCTIONPOINTER_H
-#define MBED_FUNCTIONPOINTER_H
-
-#include <string.h>
-
-namespace mbed {
-
-/* Class FunctionPointer
- * 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);
-
- /* 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);
- }
-
- /* 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);
- memcpy(_member, (char*)&member, sizeof(member));
- _membercaller = &FunctionPointer::membercaller<T>;
- _function = 0;
- }
-
- /* Function 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);
- 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
-
-};
-
-} // namespace mbed
-
-#endif
