A client for the SmartREST protocol from Cumulocity.

Dependencies:   HTTPClient SmartRest

HTTPGeneratorWrapper.cpp

Committer:
vwochnik
Date:
2014-04-02
Revision:
12:788dd934f283
Parent:
10:478414cc15a4

File content as of revision 12:788dd934f283:

#include "HTTPGeneratorWrapper.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

HTTPGeneratorWrapper::HTTPGeneratorWrapper(DataGenerator& generator) : _sink(generator.writtenLength())
{
    generator.writeTo(_sink);
    _len = _sink.length();
    _pos = 0;
    
    char *p = (char*)_sink.buffer();
    size_t i = 0;
    while (i < _len) {
        putchar(*p++);
        i++;
    }
}

void HTTPGeneratorWrapper::readReset()
{
    _pos = 0;
}

int HTTPGeneratorWrapper::read(char* buf, size_t len, size_t* pReadLen)
{
    *pReadLen = len;
    if (len > _len - _pos)
        *pReadLen = _len - _pos;
    else
        *pReadLen = len;
    memcpy(buf, _sink.buffer()+_pos, *pReadLen);
    _pos += *pReadLen;
    return 0;
}

int HTTPGeneratorWrapper::getDataType(char* type, size_t maxTypeLen)
{
    return 1;
}

bool HTTPGeneratorWrapper::getIsChunked()
{
    return false;
}

size_t HTTPGeneratorWrapper::getDataLen()
{
    return _len;
}