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.
Dependents: MbedFileServer_1768MiniDK2 RedWireBridge IssueDebug_gcc MiMicRemoteMCU-for-Mbed ... more
mbed/mod/ModWebSocket.cpp@73:8c7dd6fd462e, 2014-06-14 (annotated)
- Committer:
- nyatla
- Date:
- Sat Jun 14 02:14:20 2014 +0000
- Revision:
- 73:8c7dd6fd462e
- Parent:
- 72:c118a7aa37a3
- Child:
- 81:e5e4f2264d24
ModWebsocket?ModJsonRpc?????????
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 | 73:8c7dd6fd462e | 19 | free(this->_mod); |
| nyatla | 58:03b89038b21a | 20 | this->_mod=NULL; |
| nyatla | 58:03b89038b21a | 21 | } |
| nyatla | 58:03b89038b21a | 22 | } |
| nyatla | 58:03b89038b21a | 23 | void ModWebSocket::setParam(const char* i_path) |
| nyatla | 58:03b89038b21a | 24 | { |
| nyatla | 58:03b89038b21a | 25 | ModBaseClass::setParam(i_path); |
| nyatla | 58:03b89038b21a | 26 | } |
| nyatla | 58:03b89038b21a | 27 | |
| nyatla | 58:03b89038b21a | 28 | bool ModWebSocket::execute(HttpdConnection& i_connection) |
| nyatla | 58:03b89038b21a | 29 | { |
| nyatla | 58:03b89038b21a | 30 | if(this->_mod!=NULL){ |
| nyatla | 58:03b89038b21a | 31 | return false; |
| nyatla | 58:03b89038b21a | 32 | } |
| nyatla | 58:03b89038b21a | 33 | this->_mod=(NyLPC_TcModWebSocket_t*)malloc(sizeof(NyLPC_TcModWebSocket_t)); |
| nyatla | 58:03b89038b21a | 34 | if(this->_mod==NULL){ |
| nyatla | 58:03b89038b21a | 35 | return false; |
| nyatla | 58:03b89038b21a | 36 | } |
| 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 | 73:8c7dd6fd462e | 40 | if(NyLPC_cModWebSocket_execute(this->_mod,i_connection._ref_inst)){ |
| nyatla | 73:8c7dd6fd462e | 41 | return true; |
| nyatla | 73:8c7dd6fd462e | 42 | } |
| nyatla | 58:03b89038b21a | 43 | } |
| nyatla | 58:03b89038b21a | 44 | NyLPC_cModWebSocket_finalize(this->_mod); |
| nyatla | 58:03b89038b21a | 45 | free(this->_mod); |
| nyatla | 58:03b89038b21a | 46 | this->_mod=NULL; |
| nyatla | 73:8c7dd6fd462e | 47 | return false; |
| nyatla | 58:03b89038b21a | 48 | } |
| nyatla | 58:03b89038b21a | 49 | bool ModWebSocket::write(const void* i_tx_buf,int i_tx_size) |
| nyatla | 58:03b89038b21a | 50 | { |
| nyatla | 58:03b89038b21a | 51 | if(this->_mod==NULL){ |
| nyatla | 58:03b89038b21a | 52 | return false; |
| nyatla | 58:03b89038b21a | 53 | } |
| nyatla | 58:03b89038b21a | 54 | return NyLPC_cModWebSocket_write(this->_mod,i_tx_buf,i_tx_size)?true:false; |
| nyatla | 58:03b89038b21a | 55 | } |
| nyatla | 58:03b89038b21a | 56 | |
| nyatla | 72:c118a7aa37a3 | 57 | |
| nyatla | 58:03b89038b21a | 58 | |
| nyatla | 72:c118a7aa37a3 | 59 | bool ModWebSocket::writeFormat(const char* i_fmt,...) |
| nyatla | 58:03b89038b21a | 60 | { |
| nyatla | 72:c118a7aa37a3 | 61 | bool ret; |
| nyatla | 58:03b89038b21a | 62 | va_list a; |
| nyatla | 58:03b89038b21a | 63 | //ストリームの状態を更新する。 |
| nyatla | 58:03b89038b21a | 64 | va_start(a,i_fmt); |
| nyatla | 72:c118a7aa37a3 | 65 | ret=NyLPC_cModWebSocket_writeFormatV(this->_mod,i_fmt,a)?true:false; |
| nyatla | 58:03b89038b21a | 66 | va_end(a); |
| nyatla | 72:c118a7aa37a3 | 67 | return ret; |
| nyatla | 58:03b89038b21a | 68 | } |
| nyatla | 58:03b89038b21a | 69 | |
| nyatla | 58:03b89038b21a | 70 | int ModWebSocket::read(void* i_rx_buf,int i_rx_size) |
| nyatla | 58:03b89038b21a | 71 | { |
| nyatla | 58:03b89038b21a | 72 | if(this->_mod==NULL){ |
| nyatla | 58:03b89038b21a | 73 | return false; |
| nyatla | 58:03b89038b21a | 74 | } |
| nyatla | 58:03b89038b21a | 75 | //write here! |
| nyatla | 58:03b89038b21a | 76 | return NyLPC_cModWebSocket_read(this->_mod,i_rx_buf,i_rx_size); |
| nyatla | 58:03b89038b21a | 77 | } |
| nyatla | 58:03b89038b21a | 78 | bool ModWebSocket::canRead() |
| nyatla | 58:03b89038b21a | 79 | { |
| nyatla | 58:03b89038b21a | 80 | return NyLPC_cModWebSocket_canRead(this->_mod)?true:false; |
| nyatla | 58:03b89038b21a | 81 | } |
| nyatla | 58:03b89038b21a | 82 | |
| nyatla | 58:03b89038b21a | 83 | void ModWebSocket::close() |
| nyatla | 58:03b89038b21a | 84 | { |
| nyatla | 58:03b89038b21a | 85 | if(this->_mod==NULL){ |
| nyatla | 58:03b89038b21a | 86 | return; |
| nyatla | 58:03b89038b21a | 87 | } |
| nyatla | 58:03b89038b21a | 88 | NyLPC_cModWebSocket_finalize(this->_mod); |
| nyatla | 73:8c7dd6fd462e | 89 | free(this->_mod); |
| nyatla | 58:03b89038b21a | 90 | this->_mod=NULL; |
| nyatla | 58:03b89038b21a | 91 | return; |
| nyatla | 58:03b89038b21a | 92 | } |
| nyatla | 58:03b89038b21a | 93 | } |
MiMic Webservice library