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: FlashAir_Twitter Neon_F303K8_04
Fork of HTTPClient by
Diff: data/HTTPMap.cpp
- Revision:
- 19:3b1625dbd7e9
- Parent:
- 16:1f743885e7de
--- a/data/HTTPMap.cpp Wed May 07 16:48:10 2014 +0000
+++ b/data/HTTPMap.cpp Sun Dec 14 19:05:31 2014 +0000
@@ -34,167 +34,137 @@
void HTTPMap::put(const char* key, const char* value)
{
- if(m_count >= HTTPMAP_TABLE_SIZE)
- {
- return;
- }
- m_keys[m_count] = key;
- m_values[m_count] = value;
- m_count++;
+ if(m_count >= HTTPMAP_TABLE_SIZE) {
+ return;
+ }
+ m_keys[m_count] = key;
+ m_values[m_count] = value;
+ m_count++;
}
void HTTPMap::clear()
{
- m_count = 0;
- m_pos = 0;
+ m_count = 0;
+ m_pos = 0;
}
/*virtual*/ void HTTPMap::readReset()
{
- m_pos = 0;
+ m_pos = 0;
}
/*virtual*/ int HTTPMap::read(char* buf, size_t len, size_t* pReadLen)
{
- if(m_pos >= m_count)
- {
- *pReadLen = 0;
- m_pos = 0;
- return OK;
- }
-
- //URL encode
- char* out = buf;
- const char* in = m_keys[m_pos];
- if( (m_pos != 0) && (out - buf < len - 1) )
- {
- *out='&';
- out++;
- }
+ if(m_pos >= m_count) {
+ *pReadLen = 0;
+ m_pos = 0;
+ return OK;
+ }
- while( (*in != '\0') && (out - buf < len - 3) )
- {
- if (std::isalnum(*in) || *in == '-' || *in == '_' || *in == '.' || *in == '~')
- {
- *out = *in;
- out++;
- }
- else if( *in == ' ' )
- {
- *out='+';
- out++;
- }
- else
- {
- char hex[] = "0123456789abcdef";
- *out='%';
- out++;
- *out=hex[(*in>>4)&0xf];
- out++;
- *out=hex[(*in)&0xf];
- out++;
+ //URL encode
+ char* out = buf;
+ const char* in = m_keys[m_pos];
+ if( (m_pos != 0) && (out - buf < len - 1) ) {
+ *out='&';
+ out++;
}
- in++;
- }
- if( out - buf < len - 1 )
- {
- *out='=';
- out++;
- }
+ while( (*in != '\0') && (out - buf < len - 3) ) {
+ if (std::isalnum(*in) || *in == '-' || *in == '_' || *in == '.' || *in == '~') {
+ *out = *in;
+ out++;
+ } else if( *in == ' ' ) {
+ *out='+';
+ out++;
+ } else {
+ char hex[] = "0123456789abcdef";
+ *out='%';
+ out++;
+ *out=hex[(*in>>4)&0xf];
+ out++;
+ *out=hex[(*in)&0xf];
+ out++;
+ }
+ in++;
+ }
- in = m_values[m_pos];
- while( (*in != '\0') && (out - buf < len - 3) )
- {
- if (std::isalnum(*in) || *in == '-' || *in == '_' || *in == '.' || *in == '~')
- {
- *out = *in;
- out++;
+ if( out - buf < len - 1 ) {
+ *out='=';
+ out++;
}
- else if( *in == ' ' )
- {
- *out='+';
- out++;
+
+ in = m_values[m_pos];
+ while( (*in != '\0') && (out - buf < len - 3) ) {
+ if (std::isalnum(*in) || *in == '-' || *in == '_' || *in == '.' || *in == '~') {
+ *out = *in;
+ out++;
+ } else if( *in == ' ' ) {
+ *out='+';
+ out++;
+ } else {
+ char hex[] = "0123456789abcdef";
+ *out='%';
+ out++;
+ *out=hex[(*in>>4)&0xf];
+ out++;
+ *out=hex[(*in)&0xf];
+ out++;
+ }
+ in++;
}
- else
- {
- char hex[] = "0123456789abcdef";
- *out='%';
- out++;
- *out=hex[(*in>>4)&0xf];
- out++;
- *out=hex[(*in)&0xf];
- out++;
- }
- in++;
- }
+
+ *pReadLen = out - buf;
- *pReadLen = out - buf;
-
- m_pos++;
- return OK;
+ m_pos++;
+ return OK;
}
/*virtual*/ int HTTPMap::getDataType(char* type, size_t maxTypeLen) //Internet media type for Content-Type header
{
- strncpy(type, "application/x-www-form-urlencoded", maxTypeLen-1);
- type[maxTypeLen-1] = '\0';
- return OK;
+ strncpy(type, "application/x-www-form-urlencoded", maxTypeLen-1);
+ type[maxTypeLen-1] = '\0';
+ return OK;
}
/*virtual*/ bool HTTPMap::getIsChunked() //For Transfer-Encoding header
{
- return false; ////Data is computed one key/value pair at a time
+ return false; ////Data is computed one key/value pair at a time
}
/*virtual*/ size_t HTTPMap::getDataLen() //For Content-Length header
{
- size_t count = 0;
- for(size_t i = 0; i< m_count; i++)
- {
- //URL encode
- const char* in = m_keys[i];
- if( i != 0 )
- {
- count++;
- }
+ size_t count = 0;
+ for(size_t i = 0; i< m_count; i++) {
+ //URL encode
+ const char* in = m_keys[i];
+ if( i != 0 ) {
+ count++;
+ }
- while( (*in != '\0') )
- {
- if (std::isalnum(*in) || *in == '-' || *in == '_' || *in == '.' || *in == '~')
- {
- count++;
- }
- else if( *in == ' ' )
- {
- count++;
- }
- else
- {
- count+=3;
- }
- in++;
- }
+ while( (*in != '\0') ) {
+ if (std::isalnum(*in) || *in == '-' || *in == '_' || *in == '.' || *in == '~') {
+ count++;
+ } else if( *in == ' ' ) {
+ count++;
+ } else {
+ count+=3;
+ }
+ in++;
+ }
- count ++;
+ count ++;
- in = m_values[i];
- while( (*in != '\0') )
- {
- if (std::isalnum(*in) || *in == '-' || *in == '_' || *in == '.' || *in == '~')
- {
- count++;
- }
- else if( *in == ' ' )
- {
- count++;
- }
- else
- {
- count+=3;
- }
- in++;
+ in = m_values[i];
+ while( (*in != '\0') ) {
+ if (std::isalnum(*in) || *in == '-' || *in == '_' || *in == '.' || *in == '~') {
+ count++;
+ } else if( *in == ' ' ) {
+ count++;
+ } else {
+ count+=3;
+ }
+ in++;
+ }
}
- }
- return count;
+ return count;
}
