Own fork of MbedSmartRest
Dependents: MbedSmartRestMain MbedSmartRestMain
Fork of MbedSmartRest by
Diff: ParsedRecord.cpp
- Revision:
- 11:e1bee9a77652
- Parent:
- 5:2b74510900da
- Child:
- 20:505d29d5bdfc
diff -r 97077cfa13fc -r e1bee9a77652 ParsedRecord.cpp --- a/ParsedRecord.cpp Thu Oct 23 14:41:58 2014 +0200 +++ b/ParsedRecord.cpp Sat Nov 15 11:21:01 2014 +0100 @@ -32,98 +32,106 @@ #include <stdlib.h> #include <string.h> + +/*-------------------------------------------------------------------------*/ ParsedRecord::ParsedRecord(bool copy) : - _copy(copy) + _copy(copy) { - _count = 0; + _count = 0; #ifdef SMARTREST_PARSED_DYNAMIC_ALLOC - _values = NULL; + _values = NULL; #endif - _buffer = NULL; + _buffer = NULL; } - +/*-------------------------------------------------------------------------*/ ParsedRecord::~ParsedRecord() { - clear(); + clear(); #ifdef SMARTREST_PARSED_DYNAMIC_ALLOC - if (_values != NULL) - free(_values); + if (_values != NULL) + free(_values); #endif } - +/*-------------------------------------------------------------------------*/ size_t ParsedRecord::values() const { - return _count; + return _count; } - +/*-------------------------------------------------------------------------*/ const Value& ParsedRecord::value(size_t index) const { - return *_values[index]; + return *_values[index]; } - +/*-------------------------------------------------------------------------*/ ParsedRecord* ParsedRecord::copy() const { - ParsedRecord *copy = new ParsedRecord(true); - copy->set(_buffer, _count); - return copy; + ParsedRecord *copy = new ParsedRecord(true); + copy->set(_buffer, _count); + return copy; } - +/*-------------------------------------------------------------------------*/ const char * ParsedRecord::rawValue(size_t index) const { - if (index >= _count) - return NULL; + if (index >= _count) + return NULL; - const char *ptr = _buffer; - for (size_t n = 0; n < index; n++) { - ptr += strlen(ptr) + 1; - } + const char *ptr = _buffer; + for (size_t n = 0; n < index; n++) + { + ptr += strlen(ptr) + 1; + } - return ptr; + return ptr; } - +/*-------------------------------------------------------------------------*/ bool ParsedRecord::set(const char *buffer, size_t count) { - clear(); + clear(); #ifdef SMARTREST_PARSED_DYNAMIC_ALLOC - const Value **values = (const Value**)realloc(_values, count*sizeof(Value*)); - if (values == NULL) - return false; - _values = values; + const Value **values = (const Value**)realloc(_values, count*sizeof(Value*)); + if (values == NULL) + return false; + _values = values; #else - if (count > SMARTREST_PARSED_FIXED_SIZE) - count = SMARTREST_PARSED_FIXED_SIZE; + if (count > SMARTREST_PARSED_FIXED_SIZE) + count = SMARTREST_PARSED_FIXED_SIZE; #endif - if (_copy) { - const char *ptr = buffer; - for (size_t n = 0; n < count; n++) - ptr += strlen(ptr) + 1; - _buffer = (const char*)malloc(ptr-buffer); - if (_buffer == NULL) - return false; - memcpy((char*)_buffer, buffer, ptr-buffer); - } else { - _buffer = buffer; - } - _count = count; + if (_copy) + { + const char *ptr = buffer; + for (size_t n = 0; n < count; n++) + ptr += strlen(ptr) + 1; + _buffer = (const char*)malloc(ptr-buffer); + if (_buffer == NULL) + return false; + memcpy((char*)_buffer, buffer, ptr-buffer); + } + else + { + _buffer = buffer; + } + _count = count; - const char *ptr = _buffer; - for (size_t n = 0; n < count; n++) { - _values[n] = new ParsedValue(ptr, false); - ptr += strlen(ptr) + 1; - } + const char *ptr = _buffer; + for (size_t n = 0; n < count; n++) + { + _values[n] = new ParsedValue(ptr, false); + ptr += strlen(ptr) + 1; + } - return true; + return true; } - +/*-------------------------------------------------------------------------*/ void ParsedRecord::clear() { - for (size_t n = 0; n < _count; n++) - delete _values[n]; - if ((_copy) && (_buffer != NULL)) - free((char*)_buffer); - _buffer = NULL; - _count = 0; + for (size_t n = 0; n < _count; n++) + delete _values[n]; + if ((_copy) && (_buffer != NULL)) + free((char*)_buffer); + _buffer = NULL; + _count = 0; } +/*-------------------------------------------------------------------------*/