mbed.org implementation of the abstract SmartREST library for the Cumulocity Platform SmartREST protocol.
Dependents: MbedSmartRestMain MbedSmartRestMain
Diff: ComposedRecord.cpp
- Revision:
- 11:e1bee9a77652
- Parent:
- 5:2b74510900da
diff -r 97077cfa13fc -r e1bee9a77652 ComposedRecord.cpp --- a/ComposedRecord.cpp Thu Oct 23 14:41:58 2014 +0200 +++ b/ComposedRecord.cpp Sat Nov 15 11:21:01 2014 +0100 @@ -30,92 +30,100 @@ #include <stdlib.h> #include <string.h> + +/*-------------------------------------------------------------------------*/ ComposedRecord::ComposedRecord(bool copy) { - _alloc = copy; - #ifndef SMARTREST_COMPOSED_FIXED_SIZE - _capacity = 0; - _values = NULL; - #endif - _count = 0; + _alloc = copy; +#ifndef SMARTREST_COMPOSED_FIXED_SIZE + _capacity = 0; + _values = NULL; +#endif + _count = 0; } - +/*-------------------------------------------------------------------------*/ ComposedRecord::~ComposedRecord() { - if (_alloc) { - for (size_t n = 0; n < _count; n++) - delete _values[n]; - } - #ifndef SMARTREST_COMPOSED_FIXED_SIZE - if (_values != NULL) - free(_values); - #endif + if (_alloc) + { + for (size_t n = 0; n < _count; n++) + delete _values[n]; + } +#ifndef SMARTREST_COMPOSED_FIXED_SIZE + if (_values != NULL) + free(_values); +#endif } - +/*-------------------------------------------------------------------------*/ bool ComposedRecord::add(const Value& value) { - #ifndef SMARTREST_COMPOSED_FIXED_SIZE - if (_capacity == _count) { - size_t capacity; - if (_capacity == 0) - capacity = SMARTREST_COMPOSED_INITIAL_CAPACITY; - else - capacity = _capacity + SMARTREST_COMPOSED_MEMORY_INCREMENT; +#ifndef SMARTREST_COMPOSED_FIXED_SIZE + if (_capacity == _count) + { + size_t capacity; + if (_capacity == 0) + capacity = SMARTREST_COMPOSED_INITIAL_CAPACITY; + else + capacity = _capacity + SMARTREST_COMPOSED_MEMORY_INCREMENT; - const Value **values = (const Value**)realloc(_values, - capacity*sizeof(Value*)); - if (values == NULL) - return false; - _values = values; - _capacity = capacity; - } - #else - if (_count == SMARTREST_COMPOSED_FIXED_SIZE) - return false; - #endif + const Value **values = (const Value**)realloc(_values, + capacity*sizeof(Value*)); + if (values == NULL) + return false; + _values = values; + _capacity = capacity; + } +#else + if (_count == SMARTREST_COMPOSED_FIXED_SIZE) + return false; +#endif - if (_alloc) { - Value *copy = value.copy(); - if (copy == NULL) - return false; - _values[_count++] = copy; - } else { - _values[_count++] = &value; - } - return true; + if (_alloc) + { + Value *copy = value.copy(); + if (copy == NULL) + return false; + _values[_count++] = copy; + } + else + { + _values[_count++] = &value; + } + return true; } - +/*-------------------------------------------------------------------------*/ void ComposedRecord::clear() { - if (_alloc) { - for (size_t n = 0; n < _count; n++) - delete _values[n]; - } - _count = 0; + if (_alloc) + { + for (size_t n = 0; n < _count; n++) + delete _values[n]; + } + _count = 0; - #ifndef SMARTREST_COMPOSED_FIXED_SIZE - if (_values != NULL) - free(_values); - _values = NULL; - _capacity = 0; - #endif +#ifndef SMARTREST_COMPOSED_FIXED_SIZE + if (_values != NULL) + free(_values); + _values = NULL; + _capacity = 0; +#endif } - +/*-------------------------------------------------------------------------*/ size_t ComposedRecord::values() const { - return _count; + return _count; } - +/*-------------------------------------------------------------------------*/ const Value& ComposedRecord::value(size_t index) const { - return *_values[index]; + return *_values[index]; } - +/*-------------------------------------------------------------------------*/ ComposedRecord* ComposedRecord::copy() const { - ComposedRecord *copy = new ComposedRecord(true); - for (size_t n = 0; n < _count; n++) - copy->add(*_values[n]); - return copy; + ComposedRecord *copy = new ComposedRecord(true); + for (size_t n = 0; n < _count; n++) + copy->add(*_values[n]); + return copy; } - +/*-------------------------------------------------------------------------*/