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 {