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: WIFI_API_32kRAM mbed
RequestHandler.cpp@14:b007595028e2, 2015-10-21 (annotated)
- Committer:
- lester0507
- Date:
- Wed Oct 21 05:54:02 2015 +0000
- Revision:
- 14:b007595028e2
- Parent:
- 12:eca9b56155c7
fix bug for ssid underline.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| feb11 | 0:9e4bcb10b3e3 | 1 | #include "RequestHandler.h" |
| feb11 | 0:9e4bcb10b3e3 | 2 | #include "mbed_rpc.h" |
| feb11 | 0:9e4bcb10b3e3 | 3 | #include "RPCObjectManager.h" |
| feb11 | 0:9e4bcb10b3e3 | 4 | #include "RPCCommand.h" |
| lester0507 | 12:eca9b56155c7 | 5 | #include "mbed.h" |
| lester0507 | 12:eca9b56155c7 | 6 | |
| feb11 | 0:9e4bcb10b3e3 | 7 | |
| feb11 | 7:838d7ea07e18 | 8 | const char* INVALID_CMD = "Invalid RPC command"; |
| feb11 | 7:838d7ea07e18 | 9 | const char* DELETE_ERROR = "You must send a DELETE request to remove an object "; |
| feb11 | 7:838d7ea07e18 | 10 | const char* CREATE_ERROR = "You must send a PUT request to create an object"; |
| feb11 | 7:838d7ea07e18 | 11 | const char* FUNC_CALL_ERROR = "You must send a GET request to call a function"; |
| feb11 | 7:838d7ea07e18 | 12 | |
| feb11 | 0:9e4bcb10b3e3 | 13 | void GetRequestHandler::handle(const RPCCommand& cmd, char *reply) |
| feb11 | 0:9e4bcb10b3e3 | 14 | { |
| lester0507 | 12:eca9b56155c7 | 15 | |
| lester0507 | 12:eca9b56155c7 | 16 | switch(cmd.get_type()) { |
| feb11 | 0:9e4bcb10b3e3 | 17 | case DELETE: |
| feb11 | 7:838d7ea07e18 | 18 | printf("Error: %s\n", DELETE_ERROR); |
| feb11 | 7:838d7ea07e18 | 19 | strcat(reply, DELETE_ERROR); |
| feb11 | 0:9e4bcb10b3e3 | 20 | break; |
| feb11 | 0:9e4bcb10b3e3 | 21 | case FUNCTION_CALL: |
| feb11 | 0:9e4bcb10b3e3 | 22 | RPC::call(cmd.get_cmd(), reply); |
| feb11 | 0:9e4bcb10b3e3 | 23 | break; |
| feb11 | 0:9e4bcb10b3e3 | 24 | case CREATE: |
| feb11 | 7:838d7ea07e18 | 25 | printf("Error: %s\n", CREATE_ERROR); |
| feb11 | 7:838d7ea07e18 | 26 | strcat(reply, CREATE_ERROR); |
| feb11 | 0:9e4bcb10b3e3 | 27 | break; |
| feb11 | 0:9e4bcb10b3e3 | 28 | default: |
| feb11 | 7:838d7ea07e18 | 29 | printf("Error: %s\n", INVALID_CMD); |
| feb11 | 7:838d7ea07e18 | 30 | strcat(reply, INVALID_CMD); |
| feb11 | 0:9e4bcb10b3e3 | 31 | break; |
| feb11 | 0:9e4bcb10b3e3 | 32 | } |
| feb11 | 0:9e4bcb10b3e3 | 33 | } |
| feb11 | 0:9e4bcb10b3e3 | 34 | |
| feb11 | 0:9e4bcb10b3e3 | 35 | void PutRequestHandler::handle(const RPCCommand& cmd, char *reply) |
| feb11 | 0:9e4bcb10b3e3 | 36 | { |
| lester0507 | 12:eca9b56155c7 | 37 | |
| lester0507 | 12:eca9b56155c7 | 38 | switch(cmd.get_type()) { |
| feb11 | 0:9e4bcb10b3e3 | 39 | case DELETE: |
| feb11 | 7:838d7ea07e18 | 40 | printf("Error: %s\n", DELETE_ERROR); |
| feb11 | 7:838d7ea07e18 | 41 | strcat(reply, DELETE_ERROR); |
| feb11 | 0:9e4bcb10b3e3 | 42 | break; |
| feb11 | 0:9e4bcb10b3e3 | 43 | case FUNCTION_CALL: |
| feb11 | 7:838d7ea07e18 | 44 | printf("Error: %s\n", FUNC_CALL_ERROR); |
| feb11 | 7:838d7ea07e18 | 45 | strcat(reply, FUNC_CALL_ERROR); |
| feb11 | 0:9e4bcb10b3e3 | 46 | break; |
| feb11 | 0:9e4bcb10b3e3 | 47 | case CREATE: |
| feb11 | 0:9e4bcb10b3e3 | 48 | RPC::call(cmd.get_cmd(), reply); |
| lester0507 | 12:eca9b56155c7 | 49 | if(strlen(reply) > 0) { |
| feb11 | 0:9e4bcb10b3e3 | 50 | RPCObjectManager::instance().store_object(reply); |
| feb11 | 0:9e4bcb10b3e3 | 51 | strcat(reply, " has been created"); |
| lester0507 | 12:eca9b56155c7 | 52 | } else { |
| feb11 | 7:838d7ea07e18 | 53 | printf("Error while creating object\n"); |
| feb11 | 0:9e4bcb10b3e3 | 54 | strcat(reply, "Error while creating object."); |
| feb11 | 7:838d7ea07e18 | 55 | } |
| feb11 | 0:9e4bcb10b3e3 | 56 | break; |
| feb11 | 0:9e4bcb10b3e3 | 57 | default: |
| feb11 | 7:838d7ea07e18 | 58 | printf("Error: %s\n", INVALID_CMD); |
| feb11 | 7:838d7ea07e18 | 59 | strcat(reply, INVALID_CMD); |
| feb11 | 0:9e4bcb10b3e3 | 60 | break; |
| feb11 | 0:9e4bcb10b3e3 | 61 | } |
| feb11 | 0:9e4bcb10b3e3 | 62 | } |
| feb11 | 0:9e4bcb10b3e3 | 63 | |
| feb11 | 0:9e4bcb10b3e3 | 64 | void DeleteRequestHandler::handle(const RPCCommand& cmd, char *reply) |
| feb11 | 0:9e4bcb10b3e3 | 65 | { |
| lester0507 | 12:eca9b56155c7 | 66 | |
| lester0507 | 12:eca9b56155c7 | 67 | switch(cmd.get_type()) { |
| feb11 | 0:9e4bcb10b3e3 | 68 | case CREATE: |
| feb11 | 7:838d7ea07e18 | 69 | printf("Error: %s\n", CREATE_ERROR); |
| feb11 | 7:838d7ea07e18 | 70 | strcat(reply, CREATE_ERROR); |
| feb11 | 0:9e4bcb10b3e3 | 71 | break; |
| feb11 | 0:9e4bcb10b3e3 | 72 | case FUNCTION_CALL: |
| feb11 | 7:838d7ea07e18 | 73 | printf("Error: %s\n", FUNC_CALL_ERROR); |
| feb11 | 7:838d7ea07e18 | 74 | strcat(reply, FUNC_CALL_ERROR); |
| feb11 | 0:9e4bcb10b3e3 | 75 | break; |
| feb11 | 0:9e4bcb10b3e3 | 76 | case DELETE: |
| feb11 | 0:9e4bcb10b3e3 | 77 | RPC::call(cmd.get_cmd(), reply); |
| feb11 | 0:9e4bcb10b3e3 | 78 | RPCObjectManager::instance().remove_object(cmd.get_obj_name()); |
| feb11 | 0:9e4bcb10b3e3 | 79 | strcat(reply, "Deleted object "); |
| feb11 | 0:9e4bcb10b3e3 | 80 | strcat(reply, cmd.get_obj_name()); |
| feb11 | 0:9e4bcb10b3e3 | 81 | break; |
| feb11 | 0:9e4bcb10b3e3 | 82 | default: |
| feb11 | 7:838d7ea07e18 | 83 | printf("Error: %s\n", INVALID_CMD); |
| feb11 | 7:838d7ea07e18 | 84 | strcat(reply, INVALID_CMD); |
| feb11 | 0:9e4bcb10b3e3 | 85 | break; |
| feb11 | 0:9e4bcb10b3e3 | 86 | } |
| feb11 | 0:9e4bcb10b3e3 | 87 | } |
| feb11 | 0:9e4bcb10b3e3 | 88 | |
| feb11 | 0:9e4bcb10b3e3 | 89 | void ComplexRequestHandler::handle(const RPCCommand& cmd, char *reply) |
| feb11 | 0:9e4bcb10b3e3 | 90 | { |
| lester0507 | 12:eca9b56155c7 | 91 | |
| lester0507 | 12:eca9b56155c7 | 92 | switch(cmd.get_type()) { |
| feb11 | 0:9e4bcb10b3e3 | 93 | case CREATE : |
| feb11 | 0:9e4bcb10b3e3 | 94 | putHandler.handle(cmd, reply); |
| feb11 | 0:9e4bcb10b3e3 | 95 | break; |
| feb11 | 0:9e4bcb10b3e3 | 96 | case DELETE : |
| feb11 | 0:9e4bcb10b3e3 | 97 | deleteHandler.handle(cmd, reply); |
| feb11 | 0:9e4bcb10b3e3 | 98 | break; |
| feb11 | 0:9e4bcb10b3e3 | 99 | case FUNCTION_CALL : |
| feb11 | 0:9e4bcb10b3e3 | 100 | getHandler.handle(cmd, reply); |
| feb11 | 0:9e4bcb10b3e3 | 101 | break; |
| feb11 | 0:9e4bcb10b3e3 | 102 | default : |
| feb11 | 7:838d7ea07e18 | 103 | printf("Error: %s\n", INVALID_CMD); |
| feb11 | 7:838d7ea07e18 | 104 | strcat(reply, INVALID_CMD); |
| feb11 | 0:9e4bcb10b3e3 | 105 | break; |
| feb11 | 0:9e4bcb10b3e3 | 106 | } |
| feb11 | 0:9e4bcb10b3e3 | 107 | } |