Code written by Paul Rabbat, Angel Daruna, Jarel Hawkins, and Cordel Williams

Dependencies:   4DGL-uLCD-SE EthernetInterface HTTPClient NTPClient PinDetect SDFileSystem mbed-rpc mbed-rtos mbed wave_player

Fork of ECE4180_FinalProject by Angel Daruna

Committer:
prabbat3
Date:
Sun Dec 07 20:53:05 2014 +0000
Revision:
12:a99989062fee
Parent:
0:0a99e3fc2a46
Code cleanup

Who changed what in which revision?

UserRevisionLine numberNew contents of line
prabbat3 0:0a99e3fc2a46 1 #include "RequestHandler.h"
prabbat3 0:0a99e3fc2a46 2 #include "mbed_rpc.h"
prabbat3 0:0a99e3fc2a46 3 #include "RPCObjectManager.h"
prabbat3 0:0a99e3fc2a46 4 #include "RPCCommand.h"
prabbat3 0:0a99e3fc2a46 5
prabbat3 0:0a99e3fc2a46 6 const char* INVALID_CMD = "Invalid RPC command";
prabbat3 0:0a99e3fc2a46 7 const char* DELETE_ERROR = "You must send a DELETE request to remove an object ";
prabbat3 0:0a99e3fc2a46 8 const char* CREATE_ERROR = "You must send a PUT request to create an object";
prabbat3 0:0a99e3fc2a46 9 const char* FUNC_CALL_ERROR = "You must send a GET request to call a function";
prabbat3 0:0a99e3fc2a46 10
prabbat3 0:0a99e3fc2a46 11 void GetRequestHandler::handle(const RPCCommand& cmd, char *reply)
prabbat3 0:0a99e3fc2a46 12 {
prabbat3 0:0a99e3fc2a46 13 switch(cmd.get_type())
prabbat3 0:0a99e3fc2a46 14 {
prabbat3 0:0a99e3fc2a46 15 case DELETE:
prabbat3 0:0a99e3fc2a46 16 printf("Error: %s\n", DELETE_ERROR);
prabbat3 0:0a99e3fc2a46 17 strcat(reply, DELETE_ERROR);
prabbat3 0:0a99e3fc2a46 18 break;
prabbat3 0:0a99e3fc2a46 19 case FUNCTION_CALL:
prabbat3 0:0a99e3fc2a46 20 RPC::call(cmd.get_cmd(), reply);
prabbat3 0:0a99e3fc2a46 21 break;
prabbat3 0:0a99e3fc2a46 22 case CREATE:
prabbat3 0:0a99e3fc2a46 23 printf("Error: %s\n", CREATE_ERROR);
prabbat3 0:0a99e3fc2a46 24 strcat(reply, CREATE_ERROR);
prabbat3 0:0a99e3fc2a46 25 break;
prabbat3 0:0a99e3fc2a46 26 default:
prabbat3 0:0a99e3fc2a46 27 printf("Error: %s\n", INVALID_CMD);
prabbat3 0:0a99e3fc2a46 28 strcat(reply, INVALID_CMD);
prabbat3 0:0a99e3fc2a46 29 break;
prabbat3 0:0a99e3fc2a46 30 }
prabbat3 0:0a99e3fc2a46 31 }
prabbat3 0:0a99e3fc2a46 32
prabbat3 0:0a99e3fc2a46 33 void PutRequestHandler::handle(const RPCCommand& cmd, char *reply)
prabbat3 0:0a99e3fc2a46 34 {
prabbat3 0:0a99e3fc2a46 35 switch(cmd.get_type())
prabbat3 0:0a99e3fc2a46 36 {
prabbat3 0:0a99e3fc2a46 37 case DELETE:
prabbat3 0:0a99e3fc2a46 38 printf("Error: %s\n", DELETE_ERROR);
prabbat3 0:0a99e3fc2a46 39 strcat(reply, DELETE_ERROR);
prabbat3 0:0a99e3fc2a46 40 break;
prabbat3 0:0a99e3fc2a46 41 case FUNCTION_CALL:
prabbat3 0:0a99e3fc2a46 42 printf("Error: %s\n", FUNC_CALL_ERROR);
prabbat3 0:0a99e3fc2a46 43 strcat(reply, FUNC_CALL_ERROR);
prabbat3 0:0a99e3fc2a46 44 break;
prabbat3 0:0a99e3fc2a46 45 case CREATE:
prabbat3 0:0a99e3fc2a46 46 RPC::call(cmd.get_cmd(), reply);
prabbat3 0:0a99e3fc2a46 47 if(strlen(reply) > 0)
prabbat3 0:0a99e3fc2a46 48 {
prabbat3 0:0a99e3fc2a46 49 RPCObjectManager::instance().store_object(reply);
prabbat3 0:0a99e3fc2a46 50 strcat(reply, " has been created");
prabbat3 0:0a99e3fc2a46 51 }
prabbat3 0:0a99e3fc2a46 52 else
prabbat3 0:0a99e3fc2a46 53 {
prabbat3 0:0a99e3fc2a46 54 printf("Error while creating object\n");
prabbat3 0:0a99e3fc2a46 55 strcat(reply, "Error while creating object.");
prabbat3 0:0a99e3fc2a46 56 }
prabbat3 0:0a99e3fc2a46 57 break;
prabbat3 0:0a99e3fc2a46 58 default:
prabbat3 0:0a99e3fc2a46 59 printf("Error: %s\n", INVALID_CMD);
prabbat3 0:0a99e3fc2a46 60 strcat(reply, INVALID_CMD);
prabbat3 0:0a99e3fc2a46 61 break;
prabbat3 0:0a99e3fc2a46 62 }
prabbat3 0:0a99e3fc2a46 63 }
prabbat3 0:0a99e3fc2a46 64
prabbat3 0:0a99e3fc2a46 65 void DeleteRequestHandler::handle(const RPCCommand& cmd, char *reply)
prabbat3 0:0a99e3fc2a46 66 {
prabbat3 0:0a99e3fc2a46 67 switch(cmd.get_type())
prabbat3 0:0a99e3fc2a46 68 {
prabbat3 0:0a99e3fc2a46 69 case CREATE:
prabbat3 0:0a99e3fc2a46 70 printf("Error: %s\n", CREATE_ERROR);
prabbat3 0:0a99e3fc2a46 71 strcat(reply, CREATE_ERROR);
prabbat3 0:0a99e3fc2a46 72 break;
prabbat3 0:0a99e3fc2a46 73 case FUNCTION_CALL:
prabbat3 0:0a99e3fc2a46 74 printf("Error: %s\n", FUNC_CALL_ERROR);
prabbat3 0:0a99e3fc2a46 75 strcat(reply, FUNC_CALL_ERROR);
prabbat3 0:0a99e3fc2a46 76 break;
prabbat3 0:0a99e3fc2a46 77 case DELETE:
prabbat3 0:0a99e3fc2a46 78 RPC::call(cmd.get_cmd(), reply);
prabbat3 0:0a99e3fc2a46 79 RPCObjectManager::instance().remove_object(cmd.get_obj_name());
prabbat3 0:0a99e3fc2a46 80 strcat(reply, "Deleted object ");
prabbat3 0:0a99e3fc2a46 81 strcat(reply, cmd.get_obj_name());
prabbat3 0:0a99e3fc2a46 82 break;
prabbat3 0:0a99e3fc2a46 83 default:
prabbat3 0:0a99e3fc2a46 84 printf("Error: %s\n", INVALID_CMD);
prabbat3 0:0a99e3fc2a46 85 strcat(reply, INVALID_CMD);
prabbat3 0:0a99e3fc2a46 86 break;
prabbat3 0:0a99e3fc2a46 87 }
prabbat3 0:0a99e3fc2a46 88 }
prabbat3 0:0a99e3fc2a46 89
prabbat3 0:0a99e3fc2a46 90 void ComplexRequestHandler::handle(const RPCCommand& cmd, char *reply)
prabbat3 0:0a99e3fc2a46 91 {
prabbat3 0:0a99e3fc2a46 92 switch(cmd.get_type())
prabbat3 0:0a99e3fc2a46 93 {
prabbat3 0:0a99e3fc2a46 94 case CREATE :
prabbat3 0:0a99e3fc2a46 95 putHandler.handle(cmd, reply);
prabbat3 0:0a99e3fc2a46 96 break;
prabbat3 0:0a99e3fc2a46 97 case DELETE :
prabbat3 0:0a99e3fc2a46 98 deleteHandler.handle(cmd, reply);
prabbat3 0:0a99e3fc2a46 99 break;
prabbat3 0:0a99e3fc2a46 100 case FUNCTION_CALL :
prabbat3 0:0a99e3fc2a46 101 getHandler.handle(cmd, reply);
prabbat3 0:0a99e3fc2a46 102 break;
prabbat3 0:0a99e3fc2a46 103 default :
prabbat3 0:0a99e3fc2a46 104 printf("Error: %s\n", INVALID_CMD);
prabbat3 0:0a99e3fc2a46 105 strcat(reply, INVALID_CMD);
prabbat3 0:0a99e3fc2a46 106 break;
prabbat3 0:0a99e3fc2a46 107 }
prabbat3 0:0a99e3fc2a46 108 }
prabbat3 0:0a99e3fc2a46 109