Jun Furutani / libMiMic

Fork of libMiMic by Ryo Iizuka

Committer:
nyatla
Date:
Fri Jul 04 14:28:46 2014 +0000
Revision:
85:416f8bbbdf54
Parent:
43:a182f2b5ff41
Child:
111:f525c6e5e27b
RPC???I2C/Slave/Memory/Serial???; ?????????????RPC????????;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nyatla 7:2b33a8d84eb3 1 #include "ModBaseClass.h"
nyatla 7:2b33a8d84eb3 2 #include "HttpdConnection.h"
nyatla 7:2b33a8d84eb3 3 #include "NyLPC_cHttpdConnection_protected.h"
nyatla 7:2b33a8d84eb3 4
nyatla 7:2b33a8d84eb3 5
nyatla 7:2b33a8d84eb3 6
nyatla 7:2b33a8d84eb3 7 namespace MiMic
nyatla 7:2b33a8d84eb3 8 {
nyatla 7:2b33a8d84eb3 9 ModBaseClass::ModBaseClass(const char* i_path)
nyatla 7:2b33a8d84eb3 10 {
nyatla 7:2b33a8d84eb3 11 this->_path=NULL;
nyatla 7:2b33a8d84eb3 12 this->setParam(i_path);
nyatla 7:2b33a8d84eb3 13 }
nyatla 7:2b33a8d84eb3 14 ModBaseClass::ModBaseClass()
nyatla 7:2b33a8d84eb3 15 {
nyatla 7:2b33a8d84eb3 16 this->_path=NULL;
nyatla 7:2b33a8d84eb3 17 }
nyatla 7:2b33a8d84eb3 18 ModBaseClass::~ModBaseClass()
nyatla 7:2b33a8d84eb3 19 {
nyatla 7:2b33a8d84eb3 20 if(this->_path!=NULL){
nyatla 7:2b33a8d84eb3 21 free(this->_path);
nyatla 7:2b33a8d84eb3 22 }
nyatla 7:2b33a8d84eb3 23 }
nyatla 7:2b33a8d84eb3 24 void ModBaseClass::setParam(const char* i_path)
nyatla 7:2b33a8d84eb3 25 {
nyatla 7:2b33a8d84eb3 26 if(this->_path!=NULL){
nyatla 7:2b33a8d84eb3 27 free(this->_path);
nyatla 7:2b33a8d84eb3 28 }
nyatla 7:2b33a8d84eb3 29 this->_path=(char*)malloc(strlen(i_path)+1);
nyatla 7:2b33a8d84eb3 30 if(this->_path==NULL){
nyatla 7:2b33a8d84eb3 31 exit(-1);
nyatla 7:2b33a8d84eb3 32 }
nyatla 7:2b33a8d84eb3 33 strcpy(this->_path,i_path);
nyatla 7:2b33a8d84eb3 34 }
nyatla 7:2b33a8d84eb3 35 bool ModBaseClass::canHandle(HttpdConnection& i_connection)
nyatla 7:2b33a8d84eb3 36 {
nyatla 7:2b33a8d84eb3 37 if(this->_path==NULL){
nyatla 7:2b33a8d84eb3 38 return false;
nyatla 7:2b33a8d84eb3 39 }
nyatla 19:33b9ba0859ee 40 //connectonの状態を確認
nyatla 19:33b9ba0859ee 41 if(!NyLPC_cHttpdConnection_getReqStatus(i_connection._ref_inst)==NyLPC_cHttpdConnection_ReqStatus_REQPARSE)
nyatla 19:33b9ba0859ee 42 {
nyatla 19:33b9ba0859ee 43 return NyLPC_TBool_FALSE;
nyatla 19:33b9ba0859ee 44 }
nyatla 7:2b33a8d84eb3 45 const NyLPC_TChar* in_url;
nyatla 7:2b33a8d84eb3 46 in_url=NyLPC_cHttpdConnection_getUrlPrefix(i_connection._ref_inst);
nyatla 7:2b33a8d84eb3 47 size_t base_url_len=strlen(this->_path);
nyatla 7:2b33a8d84eb3 48 if(strlen(in_url)-2<base_url_len){
nyatla 7:2b33a8d84eb3 49 return false;
nyatla 7:2b33a8d84eb3 50 }
nyatla 7:2b33a8d84eb3 51 if(in_url[0]!='/' || strncmp(in_url+1,this->_path,base_url_len)!=0 || in_url[base_url_len+1]!='/'){
nyatla 7:2b33a8d84eb3 52 return false;
nyatla 7:2b33a8d84eb3 53 }
nyatla 7:2b33a8d84eb3 54 return true;
nyatla 7:2b33a8d84eb3 55 }
nyatla 85:416f8bbbdf54 56 }