From 4085613d00d9fc3f3b16641eb29b58f56b2ae2f4 Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Wed, 16 Apr 2014 20:25:37 +0400 Subject: [PATCH] Support for zero static buffers --- .../uavcan/transport/transfer_buffer.hpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/libuavcan/include/uavcan/transport/transfer_buffer.hpp b/libuavcan/include/uavcan/transport/transfer_buffer.hpp index 0a1065156f..cab0d1c500 100644 --- a/libuavcan/include/uavcan/transport/transfer_buffer.hpp +++ b/libuavcan/include/uavcan/transport/transfer_buffer.hpp @@ -287,7 +287,7 @@ public: template class UAVCAN_EXPORT TransferBufferManager : public TransferBufferManagerImpl { - mutable StaticTransferBufferManagerEntry static_buffers_[NumStaticBufs]; // TODO: zero buffers support + mutable StaticTransferBufferManagerEntry static_buffers_[NumStaticBufs]; StaticTransferBufferManagerEntry* getStaticByIndex(uint16_t index) const { @@ -302,6 +302,22 @@ public: } }; +template +class UAVCAN_EXPORT TransferBufferManager : public TransferBufferManagerImpl +{ + StaticTransferBufferManagerEntry* getStaticByIndex(uint16_t index) const + { + return NULL; + } + +public: + TransferBufferManager(IPoolAllocator& allocator) + : TransferBufferManagerImpl(MaxBufSize, allocator) + { + StaticAssert<(MaxBufSize > 0)>::check(); + } +}; + template <> class UAVCAN_EXPORT TransferBufferManager<0, 0> : public ITransferBufferManager {