Stack-allocating RX objects

This commit is contained in:
Pavel Kirienko
2015-05-29 22:04:19 +03:00
parent 84cac99d62
commit af09237dd2
5 changed files with 28 additions and 110 deletions
@@ -17,11 +17,8 @@ namespace uavcan
class UAVCAN_EXPORT IMarshalBuffer : public ITransferBuffer
{
public:
virtual uint8_t* getDataPtr() = 0;
virtual const uint8_t* getDataPtr() const = 0;
virtual unsigned getMaxWritePos() const = 0;
virtual unsigned getSize() const = 0;
const uint8_t* getDataPtr() const { return const_cast<IMarshalBuffer*>(this)->getDataPtr(); }
};
/**
@@ -64,12 +61,10 @@ class UAVCAN_EXPORT MarshalBufferProvider : public IMarshalBufferProvider
return buf_.write(offset, data, len);
}
virtual uint8_t* getDataPtr() { return buf_.getRawPtr(); }
virtual const uint8_t* getDataPtr() const { return buf_.getRawPtr(); }
virtual unsigned getMaxWritePos() const { return buf_.getMaxWritePos(); }
virtual unsigned getSize() const { return MaxSize_; }
public:
void reset() { buf_.reset(); }
};