mbed RPC

Dependents:   RPC_Serial_OVFZ RPCHTTPServer SerialRPC_rtos_example RPC_HTTP ... more

Fork of mbed-rpc by mbed official

Revision:
1:6919289a5946
Parent:
0:efe8172b4113
diff -r efe8172b4113 -r 6919289a5946 rpc.h
--- a/rpc.h	Tue Nov 20 17:23:59 2012 +0000
+++ b/rpc.h	Mon Apr 22 17:50:11 2013 +0100
@@ -1,23 +1,17 @@
 /* mbed Microcontroller Library
- * Copyright (c) 2006-2012 ARM Limited
+ * Copyright (c) 2006-2013 ARM Limited
  *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
  *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ *     http://www.apache.org/licenses/LICENSE-2.0
  *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 #ifndef RPC_H
 #define RPC_H
@@ -44,9 +38,9 @@
  *  The RPC class for most things
  */
 class RPC {
-    
+
 public:
-    
+
     RPC(const char *name = NULL);
 
     virtual ~RPC();
@@ -69,7 +63,7 @@
      * > };
      */
     virtual const struct rpc_method *get_rpc_methods();
-    
+
     static bool call(const char *buf, char *result);
 
     /* Function lookup
@@ -108,35 +102,35 @@
         c->next = _classes;
         _classes = c;
     }
-    
+
     template<class C>
     static const char *construct() {
         RPC *p = new C();
         p->_from_construct = true;
         return p->_name;
     }
-    
+
     template<class C, typename A1>
     static const char *construct(A1 arg1) {
         RPC *p = new C(arg1);
         p->_from_construct = true;
         return p->_name;
     }
-    
+
     template<class C, typename A1, typename A2>
     static const char *construct(A1 arg1, A2 arg2) {
         RPC *p = new C(arg1, arg2);
         p->_from_construct = true;
         return p->_name;
     }
-    
+
     template<class C, typename A1, typename A2, typename A3>
     static const char *construct(A1 arg1, A2 arg2, A3 arg3) {
         RPC *p = new C(arg1, arg2, arg3);
         p->_from_construct = true;
         return p->_name;
     }
-    
+
     template<class C, typename A1, typename A2, typename A3, typename A4>
     static const char *construct(A1 arg1, A2 arg2, A3 arg3, A4 arg4) {
         RPC *p = new C(arg1, arg2, arg3, arg4);
@@ -177,7 +171,7 @@
 template<class T, typename A1, void(T::*member)(A1)>
 void rpc_method_caller(RPC *this_ptr, Arguments *arguments, Reply *result) {
     A1 arg1 = arguments->getArg<A1>();
-    
+
     (static_cast<T*>(this_ptr)->*member)(arg1);
 }
 
@@ -187,7 +181,7 @@
 void rpc_method_caller(RPC *this_ptr, Arguments *arguments, Reply *result) {
     A1 arg1 = arguments->getArg<A1>();
     A2 arg2 = arguments->getArg<A2>();
-    
+
     (static_cast<T*>(this_ptr)->*member)(arg1, arg2);
 }
 
@@ -198,7 +192,7 @@
     A1 arg1 = arguments->getArg<A1>();
     A2 arg2 = arguments->getArg<A2>();
     A3 arg3 = arguments->getArg<A3>();
-    
+
     (static_cast<T*>(this_ptr)->*member)(arg1, arg2, arg3);
 }
 
@@ -215,7 +209,7 @@
 template<typename R, class T, typename A1, R(T::*member)(A1)>
 void rpc_method_caller(RPC *this_ptr, Arguments *arguments, Reply *result) {
     A1 arg1 = arguments->getArg<A1>();
-    
+
     R res = (static_cast<T*>(this_ptr)->*member)(arg1);
     result->putData<R>(res);
 }
@@ -226,7 +220,7 @@
 void rpc_method_caller(RPC *this_ptr, Arguments *arguments, Reply *result) {
     A1 arg1 = arguments->getArg<A1>();
     A2 arg2 = arguments->getArg<A2>();
-    
+
     R res = (static_cast<T*>(this_ptr)->*member)(arg1, arg2);
     result->putData<R>(res);
 }
@@ -238,7 +232,7 @@
     A1 arg1 = arguments->getArg<A1>();
     A2 arg2 = arguments->getArg<A2>();
     A3 arg3 = arguments->getArg<A3>();
-    
+
     R res = (static_cast<T*>(this_ptr)->*member)(arg1, arg2, arg3);
     result->putData<R>(res);
 }
@@ -266,7 +260,7 @@
 void rpc_function_caller(Arguments *arguments, Reply *result) {
     A1 arg1 = arguments->getArg<A1>();
     A2 arg2 = arguments->getArg<A2>();
-    
+
     R res = (*func)(arg1, arg2);
     result->putData<R>(res);
 }
@@ -278,7 +272,7 @@
     A1 arg1 = arguments->getArg<A1>();
     A2 arg2 = arguments->getArg<A2>();
     A3 arg3 = arguments->getArg<A3>();
-    
+
     R res = (*func)(arg1, arg2, arg3);
     result->putData<R>(res);
 }
@@ -291,7 +285,7 @@
     A2 arg2 = arguments->getArg<A2>();
     A3 arg3 = arguments->getArg<A3>();
     A4 arg4 = arguments->getArg<A4>();
-    
+
     R res = (*func)(arg1, arg2, arg3, arg4);
     result->putData<R>(res);
 }