This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088
Fork of libMiMic by
mbed/mod/ModWebSocket.cpp@72:c118a7aa37a3, 2014-06-13 (annotated)
- 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?
User | Revision | Line number | New 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 | } |