Radio Structures in OOP

Dependencies:   mbed mbed-rtos

Committer:
jjones646
Date:
Thu Jan 15 07:15:33 2015 +0000
Revision:
6:4a3dbfbc30f1
Parent:
4:989d51f3e6ef
socket interface confirmed working.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jjones646 3:dc7e9c6bc26c 1 /* mbed Microcontroller Library
jjones646 3:dc7e9c6bc26c 2 * Copyright (c) 2006-2013 ARM Limited
jjones646 3:dc7e9c6bc26c 3 *
jjones646 3:dc7e9c6bc26c 4 * Licensed under the Apache License, Version 2.0 (the "License");
jjones646 3:dc7e9c6bc26c 5 * you may not use this file except in compliance with the License.
jjones646 3:dc7e9c6bc26c 6 * You may obtain a copy of the License at
jjones646 3:dc7e9c6bc26c 7 *
jjones646 3:dc7e9c6bc26c 8 * http://www.apache.org/licenses/LICENSE-2.0
jjones646 3:dc7e9c6bc26c 9 *
jjones646 3:dc7e9c6bc26c 10 * Unless required by applicable law or agreed to in writing, software
jjones646 3:dc7e9c6bc26c 11 * distributed under the License is distributed on an "AS IS" BASIS,
jjones646 3:dc7e9c6bc26c 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
jjones646 3:dc7e9c6bc26c 13 * See the License for the specific language governing permissions and
jjones646 3:dc7e9c6bc26c 14 * limitations under the License.
jjones646 3:dc7e9c6bc26c 15 */
jjones646 3:dc7e9c6bc26c 16 #include "FunctionPointerRJ.h"
jjones646 3:dc7e9c6bc26c 17
jjones646 3:dc7e9c6bc26c 18 FunctionPointerRJ::FunctionPointerRJ(void (*function)(void)) :
jjones646 3:dc7e9c6bc26c 19 _function(),
jjones646 3:dc7e9c6bc26c 20 _object(),
jjones646 3:dc7e9c6bc26c 21 _membercaller()
jjones646 3:dc7e9c6bc26c 22 {
jjones646 3:dc7e9c6bc26c 23 attach(function);
jjones646 3:dc7e9c6bc26c 24 }
jjones646 3:dc7e9c6bc26c 25
jjones646 4:989d51f3e6ef 26 void FunctionPointerRJ::attach(void(*function)(void))
jjones646 3:dc7e9c6bc26c 27 {
jjones646 3:dc7e9c6bc26c 28 _function = function;
jjones646 3:dc7e9c6bc26c 29 _object = 0;
jjones646 3:dc7e9c6bc26c 30 }
jjones646 3:dc7e9c6bc26c 31
jjones646 4:989d51f3e6ef 32 void FunctionPointerRJ::attach(void(*function)(RTP_t*))
jjones646 3:dc7e9c6bc26c 33 {
jjones646 3:dc7e9c6bc26c 34 _functionRTP = function;
jjones646 3:dc7e9c6bc26c 35 _object = 0;
jjones646 3:dc7e9c6bc26c 36 }
jjones646 3:dc7e9c6bc26c 37
jjones646 4:989d51f3e6ef 38 void FunctionPointerRJ::attach(void(*function)(void const*))
jjones646 3:dc7e9c6bc26c 39 {
jjones646 3:dc7e9c6bc26c 40 _functionConst = function;
jjones646 3:dc7e9c6bc26c 41 _object = 0;
jjones646 3:dc7e9c6bc26c 42 }
jjones646 3:dc7e9c6bc26c 43
jjones646 3:dc7e9c6bc26c 44 void FunctionPointerRJ::call(void)
jjones646 3:dc7e9c6bc26c 45 {
jjones646 3:dc7e9c6bc26c 46 if (_function) {
jjones646 3:dc7e9c6bc26c 47 _function();
jjones646 3:dc7e9c6bc26c 48 } else if (_object) {
jjones646 3:dc7e9c6bc26c 49 _membercaller(_object, _member);
jjones646 3:dc7e9c6bc26c 50 }
jjones646 3:dc7e9c6bc26c 51 }
jjones646 3:dc7e9c6bc26c 52
jjones646 3:dc7e9c6bc26c 53 void FunctionPointerRJ::call(RTP_t* p)
jjones646 3:dc7e9c6bc26c 54 {
jjones646 3:dc7e9c6bc26c 55 if (_functionRTP) {
jjones646 3:dc7e9c6bc26c 56 _functionRTP(p);
jjones646 3:dc7e9c6bc26c 57 } else if (_object) {
jjones646 4:989d51f3e6ef 58 _membercallerRTP(_object, _member, p);
jjones646 3:dc7e9c6bc26c 59 }
jjones646 3:dc7e9c6bc26c 60 }
jjones646 3:dc7e9c6bc26c 61
jjones646 3:dc7e9c6bc26c 62 void FunctionPointerRJ::call(void const *arg)
jjones646 3:dc7e9c6bc26c 63 {
jjones646 3:dc7e9c6bc26c 64 if (_functionConst) {
jjones646 3:dc7e9c6bc26c 65 _functionConst(arg);
jjones646 3:dc7e9c6bc26c 66 } else if (_object) {
jjones646 3:dc7e9c6bc26c 67 _membercaller(_object, _member);
jjones646 3:dc7e9c6bc26c 68 }
jjones646 3:dc7e9c6bc26c 69 }
jjones646 3:dc7e9c6bc26c 70
jjones646 3:dc7e9c6bc26c 71 #ifdef MBED_OPERATORS
jjones646 3:dc7e9c6bc26c 72 void FunctionPointerRJ::operator ()(void)
jjones646 3:dc7e9c6bc26c 73 {
jjones646 3:dc7e9c6bc26c 74 call();
jjones646 3:dc7e9c6bc26c 75 }
jjones646 3:dc7e9c6bc26c 76 #endif
jjones646 3:dc7e9c6bc26c 77