Fork of OAuth4Tw to use mbed's official EthernetInterface and HTTPClient

Fork of OAuth4Tw by Masayoshi Takahashi

Committer:
vpcola
Date:
Thu Apr 30 10:19:31 2015 +0000
Revision:
1:b3501683b856
Fork of OAuth4Tw to use normal EthernetInterface and HTTPClient library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vpcola 1:b3501683b856 1 #include "oauth_data.h"
vpcola 1:b3501683b856 2
vpcola 1:b3501683b856 3 #include <cstring>
vpcola 1:b3501683b856 4
vpcola 1:b3501683b856 5 #define OK 0
vpcola 1:b3501683b856 6
vpcola 1:b3501683b856 7 using std::memcpy;
vpcola 1:b3501683b856 8 using std::strncpy;
vpcola 1:b3501683b856 9 using std::strlen;
vpcola 1:b3501683b856 10
vpcola 1:b3501683b856 11 #define MIN(x,y) (((x)<(y))?(x):(y))
vpcola 1:b3501683b856 12
vpcola 1:b3501683b856 13 OAuthDataOut::OAuthDataOut(const char * contentType, const char* data)
vpcola 1:b3501683b856 14 : m_str((char *) data),
vpcola 1:b3501683b856 15 m_contentType(contentType),
vpcola 1:b3501683b856 16 m_pos(0),
vpcola 1:b3501683b856 17 m_isChunked(false)
vpcola 1:b3501683b856 18 {
vpcola 1:b3501683b856 19 m_size = strlen(data) + 1;
vpcola 1:b3501683b856 20 }
vpcola 1:b3501683b856 21
vpcola 1:b3501683b856 22 void OAuthDataOut::readReset()
vpcola 1:b3501683b856 23 {
vpcola 1:b3501683b856 24 m_pos = 0;
vpcola 1:b3501683b856 25 }
vpcola 1:b3501683b856 26
vpcola 1:b3501683b856 27 // HTTPClient reads a piece of data to be transmitted
vpcola 1:b3501683b856 28 // buf - pointer to the buffer on which to copy (destination)
vpcola 1:b3501683b856 29 // the data, len is the length of the buffer.
vpcola 1:b3501683b856 30 // pReadLen is a pointer a variable on which the actual number
vpcola 1:b3501683b856 31 // of data that was copied
vpcola 1:b3501683b856 32 int OAuthDataOut::read(char* buf, size_t len, size_t* pReadLen)
vpcola 1:b3501683b856 33 {
vpcola 1:b3501683b856 34 *pReadLen = MIN(len, m_size - 1 - m_pos);
vpcola 1:b3501683b856 35 memcpy(buf, m_str + m_pos, *pReadLen);
vpcola 1:b3501683b856 36 m_pos += *pReadLen;
vpcola 1:b3501683b856 37 return OK;
vpcola 1:b3501683b856 38
vpcola 1:b3501683b856 39 }
vpcola 1:b3501683b856 40 // Copies the content-type of the data
vpcola 1:b3501683b856 41 // type (out) gets the content type of the data stored.
vpcola 1:b3501683b856 42 int OAuthDataOut::getDataType(char* type, size_t maxTypeLen)
vpcola 1:b3501683b856 43 {
vpcola 1:b3501683b856 44 strncpy(type, m_contentType.c_str(), maxTypeLen-1);
vpcola 1:b3501683b856 45 type[maxTypeLen-1] = 0;
vpcola 1:b3501683b856 46 return OK;
vpcola 1:b3501683b856 47 }
vpcola 1:b3501683b856 48
vpcola 1:b3501683b856 49 bool OAuthDataOut::getIsChunked()
vpcola 1:b3501683b856 50 {
vpcola 1:b3501683b856 51 return m_isChunked;
vpcola 1:b3501683b856 52 }
vpcola 1:b3501683b856 53
vpcola 1:b3501683b856 54 size_t OAuthDataOut::getDataLen()
vpcola 1:b3501683b856 55 {
vpcola 1:b3501683b856 56 return m_size - 1;
vpcola 1:b3501683b856 57 }
vpcola 1:b3501683b856 58
vpcola 1:b3501683b856 59 OAuthDataIn::OAuthDataIn(char* str, size_t size)
vpcola 1:b3501683b856 60 : m_str(str),
vpcola 1:b3501683b856 61 m_contentType("text/plain"),
vpcola 1:b3501683b856 62 m_size(size),
vpcola 1:b3501683b856 63 m_pos(0),
vpcola 1:b3501683b856 64 m_isChunked(false)
vpcola 1:b3501683b856 65 {
vpcola 1:b3501683b856 66
vpcola 1:b3501683b856 67 }
vpcola 1:b3501683b856 68
vpcola 1:b3501683b856 69 std::string OAuthDataIn::getContentType()
vpcola 1:b3501683b856 70 {
vpcola 1:b3501683b856 71 return m_contentType;
vpcola 1:b3501683b856 72 }
vpcola 1:b3501683b856 73
vpcola 1:b3501683b856 74 std::string OAuthDataIn::getData()
vpcola 1:b3501683b856 75 {
vpcola 1:b3501683b856 76 return std::string((const char *)m_str);
vpcola 1:b3501683b856 77 }
vpcola 1:b3501683b856 78
vpcola 1:b3501683b856 79 void OAuthDataIn::writeReset()
vpcola 1:b3501683b856 80 {
vpcola 1:b3501683b856 81 m_pos = 0;
vpcola 1:b3501683b856 82 }
vpcola 1:b3501683b856 83
vpcola 1:b3501683b856 84 int OAuthDataIn::write(const char* buf, size_t len)
vpcola 1:b3501683b856 85 {
vpcola 1:b3501683b856 86 size_t writeLen = MIN(len, m_size - 1 - m_pos);
vpcola 1:b3501683b856 87 memcpy(m_str + m_pos, buf, writeLen);
vpcola 1:b3501683b856 88 m_pos += writeLen;
vpcola 1:b3501683b856 89 m_str[m_pos] = '\0';
vpcola 1:b3501683b856 90 return OK;
vpcola 1:b3501683b856 91 }
vpcola 1:b3501683b856 92
vpcola 1:b3501683b856 93 void OAuthDataIn::setDataType(const char* type)
vpcola 1:b3501683b856 94 {
vpcola 1:b3501683b856 95 m_contentType = type;
vpcola 1:b3501683b856 96 }
vpcola 1:b3501683b856 97
vpcola 1:b3501683b856 98 void OAuthDataIn::setIsChunked(bool chunked)
vpcola 1:b3501683b856 99 {
vpcola 1:b3501683b856 100 m_isChunked = chunked;
vpcola 1:b3501683b856 101 }
vpcola 1:b3501683b856 102
vpcola 1:b3501683b856 103 void OAuthDataIn::setDataLen(size_t len)
vpcola 1:b3501683b856 104 {
vpcola 1:b3501683b856 105 m_size = len;
vpcola 1:b3501683b856 106 }