mbed-os

Fork of mbed-os by erkin yucel

Committer:
xuaner
Date:
Thu Jul 20 14:26:57 2017 +0000
Revision:
1:3deb71413561
Parent:
0:f269e3021894
mbed_os

Who changed what in which revision?

UserRevisionLine numberNew contents of line
elessair 0:f269e3021894 1 /* mbed Microcontroller Library
elessair 0:f269e3021894 2 * Copyright (c) 2006-2013 ARM Limited
elessair 0:f269e3021894 3 *
elessair 0:f269e3021894 4 * Licensed under the Apache License, Version 2.0 (the "License");
elessair 0:f269e3021894 5 * you may not use this file except in compliance with the License.
elessair 0:f269e3021894 6 * You may obtain a copy of the License at
elessair 0:f269e3021894 7 *
elessair 0:f269e3021894 8 * http://www.apache.org/licenses/LICENSE-2.0
elessair 0:f269e3021894 9 *
elessair 0:f269e3021894 10 * Unless required by applicable law or agreed to in writing, software
elessair 0:f269e3021894 11 * distributed under the License is distributed on an "AS IS" BASIS,
elessair 0:f269e3021894 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
elessair 0:f269e3021894 13 * See the License for the specific language governing permissions and
elessair 0:f269e3021894 14 * limitations under the License.
elessair 0:f269e3021894 15 */
elessair 0:f269e3021894 16 #ifndef RPCFUNCTION_RPC
elessair 0:f269e3021894 17 #define RPCFUNCTION_RPC
elessair 0:f269e3021894 18
elessair 0:f269e3021894 19 #include "rpc.h"
elessair 0:f269e3021894 20 #define STR_LEN 64
elessair 0:f269e3021894 21
elessair 0:f269e3021894 22 namespace mbed {
elessair 0:f269e3021894 23
elessair 0:f269e3021894 24 /**
elessair 0:f269e3021894 25 *
elessair 0:f269e3021894 26 *Class to call custom functions over RPC
elessair 0:f269e3021894 27 *
elessair 0:f269e3021894 28 */
elessair 0:f269e3021894 29 class RPCFunction: public RPC {
elessair 0:f269e3021894 30 public:
elessair 0:f269e3021894 31 /**
elessair 0:f269e3021894 32 * Constructor
elessair 0:f269e3021894 33 *
elessair 0:f269e3021894 34 *@param f Pointer to the function to call. the function must be of the form void foo(char * input, char * output)
elessair 0:f269e3021894 35 *@param name The name of this object
elessair 0:f269e3021894 36 */
elessair 0:f269e3021894 37 RPCFunction(void (*f)(Arguments*, Reply*), const char* = NULL);
elessair 0:f269e3021894 38
elessair 0:f269e3021894 39 /**
elessair 0:f269e3021894 40 *run
elessair 0:f269e3021894 41 *
elessair 0:f269e3021894 42 *Calls the attached function passing the string in but doesn't return the result.
elessair 0:f269e3021894 43 *@param str The string to be passed into the attached function. This string can consist of any ASCII characters apart from escape codes. The usual limtations on argument content for RPC strings has been removed
elessair 0:f269e3021894 44 *@return A string output from the function
elessair 0:f269e3021894 45 */
elessair 0:f269e3021894 46 void run(Arguments* args, Reply* r);
elessair 0:f269e3021894 47
elessair 0:f269e3021894 48 virtual const struct rpc_method *get_rpc_methods();
elessair 0:f269e3021894 49
elessair 0:f269e3021894 50 private:
elessair 0:f269e3021894 51 void (*_ftr)(Arguments*, Reply*);
elessair 0:f269e3021894 52
elessair 0:f269e3021894 53 char _input[STR_LEN];
elessair 0:f269e3021894 54 char _output[STR_LEN];
elessair 0:f269e3021894 55 };
elessair 0:f269e3021894 56
elessair 0:f269e3021894 57 }
elessair 0:f269e3021894 58
elessair 0:f269e3021894 59 #endif