This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088

Fork of libMiMic by Ryo Iizuka

Committer:
nyatla
Date:
Fri Jun 13 11:06:33 2014 +0000
Revision:
72:c118a7aa37a3
Parent:
58:03b89038b21a
Child:
73:8c7dd6fd462e
mbedAPI???????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nyatla 58:03b89038b21a 1 #include "ModWebSocket.h"
nyatla 58:03b89038b21a 2 #include "../net/httpd/mod/NyLPC_cModWebSocket_protected.h"
nyatla 58:03b89038b21a 3 #include "HttpdConnection.h"
nyatla 58:03b89038b21a 4
nyatla 58:03b89038b21a 5 namespace MiMic
nyatla 58:03b89038b21a 6 {
nyatla 58:03b89038b21a 7 ModWebSocket::ModWebSocket(const char* i_path):ModBaseClass(i_path)
nyatla 58:03b89038b21a 8 {
nyatla 58:03b89038b21a 9 this->_mod=NULL;
nyatla 58:03b89038b21a 10 }
nyatla 58:03b89038b21a 11 ModWebSocket::ModWebSocket()
nyatla 58:03b89038b21a 12 {
nyatla 58:03b89038b21a 13 this->_mod=NULL;
nyatla 58:03b89038b21a 14 }
nyatla 58:03b89038b21a 15 ModWebSocket::~ModWebSocket()
nyatla 58:03b89038b21a 16 {
nyatla 58:03b89038b21a 17 if(this->_mod!=NULL){
nyatla 58:03b89038b21a 18 NyLPC_cModWebSocket_finalize(this->_mod);
nyatla 58:03b89038b21a 19 this->_mod=NULL;
nyatla 58:03b89038b21a 20 }
nyatla 58:03b89038b21a 21 }
nyatla 58:03b89038b21a 22 void ModWebSocket::setParam(const char* i_path)
nyatla 58:03b89038b21a 23 {
nyatla 58:03b89038b21a 24 ModBaseClass::setParam(i_path);
nyatla 58:03b89038b21a 25 }
nyatla 58:03b89038b21a 26
nyatla 58:03b89038b21a 27 bool ModWebSocket::execute(HttpdConnection& i_connection)
nyatla 58:03b89038b21a 28 {
nyatla 58:03b89038b21a 29 if(this->_mod!=NULL){
nyatla 58:03b89038b21a 30 return false;
nyatla 58:03b89038b21a 31 }
nyatla 58:03b89038b21a 32 this->_mod=(NyLPC_TcModWebSocket_t*)malloc(sizeof(NyLPC_TcModWebSocket_t));
nyatla 58:03b89038b21a 33 if(this->_mod==NULL){
nyatla 58:03b89038b21a 34 return false;
nyatla 58:03b89038b21a 35 }
nyatla 72:c118a7aa37a3 36 bool ret=false;
nyatla 58:03b89038b21a 37 //initialize websocket
nyatla 58:03b89038b21a 38 NyLPC_cModWebSocket_initialize(this->_mod,this->_path);
nyatla 58:03b89038b21a 39 if(NyLPC_cModWebSocket_canHandle(this->_mod,i_connection._ref_inst)){
nyatla 72:c118a7aa37a3 40 ret=NyLPC_cModWebSocket_execute(this->_mod,i_connection._ref_inst)?true:false;
nyatla 58:03b89038b21a 41 }
nyatla 58:03b89038b21a 42 NyLPC_cModWebSocket_finalize(this->_mod);
nyatla 58:03b89038b21a 43 free(this->_mod);
nyatla 58:03b89038b21a 44 this->_mod=NULL;
nyatla 72:c118a7aa37a3 45 return ret;
nyatla 58:03b89038b21a 46 }
nyatla 58:03b89038b21a 47 bool ModWebSocket::write(const void* i_tx_buf,int i_tx_size)
nyatla 58:03b89038b21a 48 {
nyatla 58:03b89038b21a 49 if(this->_mod==NULL){
nyatla 58:03b89038b21a 50 return false;
nyatla 58:03b89038b21a 51 }
nyatla 58:03b89038b21a 52 return NyLPC_cModWebSocket_write(this->_mod,i_tx_buf,i_tx_size)?true:false;
nyatla 58:03b89038b21a 53 }
nyatla 58:03b89038b21a 54
nyatla 72:c118a7aa37a3 55
nyatla 58:03b89038b21a 56
nyatla 72:c118a7aa37a3 57 bool ModWebSocket::writeFormat(const char* i_fmt,...)
nyatla 58:03b89038b21a 58 {
nyatla 72:c118a7aa37a3 59 bool ret;
nyatla 58:03b89038b21a 60 va_list a;
nyatla 58:03b89038b21a 61 //ストリームの状態を更新する。
nyatla 58:03b89038b21a 62 va_start(a,i_fmt);
nyatla 72:c118a7aa37a3 63 ret=NyLPC_cModWebSocket_writeFormatV(this->_mod,i_fmt,a)?true:false;
nyatla 58:03b89038b21a 64 va_end(a);
nyatla 72:c118a7aa37a3 65 return ret;
nyatla 58:03b89038b21a 66 }
nyatla 58:03b89038b21a 67
nyatla 58:03b89038b21a 68 int ModWebSocket::read(void* i_rx_buf,int i_rx_size)
nyatla 58:03b89038b21a 69 {
nyatla 58:03b89038b21a 70 if(this->_mod==NULL){
nyatla 58:03b89038b21a 71 return false;
nyatla 58:03b89038b21a 72 }
nyatla 58:03b89038b21a 73 //write here!
nyatla 58:03b89038b21a 74 return NyLPC_cModWebSocket_read(this->_mod,i_rx_buf,i_rx_size);
nyatla 58:03b89038b21a 75 }
nyatla 58:03b89038b21a 76 bool ModWebSocket::canRead()
nyatla 58:03b89038b21a 77 {
nyatla 58:03b89038b21a 78 return NyLPC_cModWebSocket_canRead(this->_mod)?true:false;
nyatla 58:03b89038b21a 79 }
nyatla 58:03b89038b21a 80
nyatla 58:03b89038b21a 81 void ModWebSocket::close()
nyatla 58:03b89038b21a 82 {
nyatla 58:03b89038b21a 83 if(this->_mod==NULL){
nyatla 58:03b89038b21a 84 return;
nyatla 58:03b89038b21a 85 }
nyatla 58:03b89038b21a 86 NyLPC_cModWebSocket_finalize(this->_mod);
nyatla 58:03b89038b21a 87 this->_mod=NULL;
nyatla 58:03b89038b21a 88 return;
nyatla 58:03b89038b21a 89 }
nyatla 58:03b89038b21a 90 }