Jun Furutani / libMiMic

Fork of libMiMic by Ryo Iizuka

Committer:
nyatla
Date:
Wed Nov 19 14:45:17 2014 +0000
Revision:
109:18f12ac01097
Parent:
46:61edfd4b16ee
new MiMicIP API;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nyatla 3:0a94993be1f6 1 #include "Httpd.h"
nyatla 3:0a94993be1f6 2 #include "HttpdConnection.h"
nyatla 109:18f12ac01097 3 #include "mbed.h"
nyatla 3:0a94993be1f6 4 namespace MiMic
nyatla 3:0a94993be1f6 5 {
nyatla 19:33b9ba0859ee 6 char Httpd::_shared_buf[SIZE_OF_HTTP_BUF];
nyatla 19:33b9ba0859ee 7
nyatla 3:0a94993be1f6 8 void Httpd::onRequestHandler(NyLPC_TcHttpdConnection_t* i_connection)
nyatla 3:0a94993be1f6 9 {
nyatla 3:0a94993be1f6 10 HttpdConnection c(i_connection);
nyatla 3:0a94993be1f6 11 ((struct Httpd2*)(i_connection->_parent_httpd))->_parent->onRequest(c);
nyatla 3:0a94993be1f6 12 }
nyatla 3:0a94993be1f6 13 Httpd::Httpd(int i_port_number)
nyatla 3:0a94993be1f6 14 {
nyatla 109:18f12ac01097 15 if(!NyLPC_cHttpd_initialize((NyLPC_TcHttpd_t*)(&this->_inst),(NyLPC_TUInt16)i_port_number)){
nyatla 109:18f12ac01097 16 mbed_die();
nyatla 109:18f12ac01097 17 }
nyatla 3:0a94993be1f6 18 this->_inst._parent=this;
nyatla 3:0a94993be1f6 19 this->_inst.super.function.onRequest=onRequestHandler;
nyatla 3:0a94993be1f6 20 }
nyatla 3:0a94993be1f6 21 Httpd::~Httpd()
nyatla 3:0a94993be1f6 22 {
nyatla 3:0a94993be1f6 23 NyLPC_cHttpd_finalize((NyLPC_TcHttpd_t*)(&this->_inst));
nyatla 3:0a94993be1f6 24 }
nyatla 3:0a94993be1f6 25 void Httpd::loop()
nyatla 3:0a94993be1f6 26 {
nyatla 3:0a94993be1f6 27 NyLPC_cHttpd_loop((NyLPC_TcHttpd_t*)(&this->_inst));
nyatla 45:63d6aa80e26d 28 }
nyatla 19:33b9ba0859ee 29 void Httpd::lock()
nyatla 19:33b9ba0859ee 30 {
nyatla 19:33b9ba0859ee 31 NyLPC_cHttpd_lock((NyLPC_TcHttpd_t*)(&this->_inst));
nyatla 19:33b9ba0859ee 32 }
nyatla 19:33b9ba0859ee 33 void Httpd::unlock()
nyatla 19:33b9ba0859ee 34 {
nyatla 19:33b9ba0859ee 35 NyLPC_cHttpd_unlock((NyLPC_TcHttpd_t*)(&this->_inst));
nyatla 19:33b9ba0859ee 36 }
nyatla 45:63d6aa80e26d 37 void Httpd::loopTask()
nyatla 45:63d6aa80e26d 38 {
nyatla 45:63d6aa80e26d 39 NyLPC_TcThread_t* th=(NyLPC_TcThread_t*)malloc(sizeof(NyLPC_TcThread_t));
nyatla 45:63d6aa80e26d 40 NyLPC_cThread_initialize(th,256,NyLPC_TcThread_PRIORITY_IDLE);
nyatla 45:63d6aa80e26d 41 NyLPC_cThread_start(th,Httpd::taskHandler,&(this->_inst));
nyatla 45:63d6aa80e26d 42 }
nyatla 45:63d6aa80e26d 43 int Httpd::taskHandler(void* i_param)
nyatla 45:63d6aa80e26d 44 {
nyatla 45:63d6aa80e26d 45 NyLPC_cHttpd_loop((NyLPC_TcHttpd_t*)i_param);
nyatla 46:61edfd4b16ee 46 return 0;
nyatla 45:63d6aa80e26d 47 }
nyatla 19:33b9ba0859ee 48
nyatla 109:18f12ac01097 49 }