A client for the SmartREST protocol from Cumulocity.

Dependencies:   SmartRest

Fork of MbedSmartRest by Vincent Wochnik

HTTPGeneratorWrapper.cpp

Committer:
vwochnik
Date:
2014-01-27
Revision:
4:0eb69392686f
Parent:
2:1038411466a6
Child:
9:3bbb83e7cbfd

File content as of revision 4:0eb69392686f:

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

HTTPGeneratorWrapper::HTTPGeneratorWrapper(DataGenerator& generator) : _sink(generator.writtenLength())
{
    generator.writeTo(_sink);
    _len = _sink.length();
    _pos = 0;
}

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;
}