mbed library sources

Dependents:   bare

Fork of mbed-src by mbed official

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers FunctionPointer.cpp Source File

FunctionPointer.cpp

00001 /* mbed Microcontroller Library
00002  * Copyright (c) 2006-2013 ARM Limited
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *     http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 #include "FunctionPointer.h"
00017 
00018 namespace mbed {
00019 
00020 FunctionPointer::FunctionPointer(void (*function)(void)) {
00021     attach(function);
00022 }
00023 
00024 void FunctionPointer::attach(void (*function)(void)) {
00025     _function = function;
00026     _object = 0;
00027 }
00028 
00029 void FunctionPointer::call(void) {
00030     if (_function) {
00031         _function();
00032     } else if (_object) {
00033         _membercaller(_object, _member);
00034     }
00035 }
00036 
00037 #ifdef MBED_OPERATORS
00038 void FunctionPointer::operator ()(void) {
00039     call();
00040 }
00041 #endif
00042 
00043 } // namespace mbed