mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-04-27 21:54:07 +08:00
Explicit specialization for empty TransferBuffer (for single frame transfers)
This commit is contained in:
parent
5be2801fa1
commit
0acf1b976b
@ -335,7 +335,11 @@ class TransferBufferManager : public ITransferBufferManager, Noncopyable
|
||||
public:
|
||||
TransferBufferManager(IAllocator* allocator)
|
||||
: allocator_(allocator)
|
||||
{ }
|
||||
{
|
||||
assert(allocator);
|
||||
StaticAssert<(MAX_BUF_SIZE > 0)>::check();
|
||||
StaticAssert<(NUM_STATIC_BUFS > 0)>::check();
|
||||
}
|
||||
|
||||
~TransferBufferManager()
|
||||
{
|
||||
@ -425,4 +429,31 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
class TransferBufferManager<0, 0> : public ITransferBufferManager
|
||||
{
|
||||
public:
|
||||
TransferBufferManager(IAllocator* allocator)
|
||||
{
|
||||
(void)allocator;
|
||||
}
|
||||
|
||||
TransferBufferBase* access(const TransferBufferManagerKey& key)
|
||||
{
|
||||
(void)key;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
TransferBufferBase* create(const TransferBufferManagerKey& key)
|
||||
{
|
||||
(void)key;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void remove(const TransferBufferManagerKey& key)
|
||||
{
|
||||
(void)key;
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@ -338,3 +338,11 @@ TEST(TransferBufferManager, Basic)
|
||||
mgr.reset();
|
||||
ASSERT_EQ(0, pool.getNumUsedBlocks());
|
||||
}
|
||||
|
||||
|
||||
TEST(TransferBufferManager, EmptySpecialization)
|
||||
{
|
||||
uavcan::TransferBufferManager<0, 0> mgr(NULL);
|
||||
(void)mgr;
|
||||
ASSERT_GE(sizeof(void*), sizeof(mgr));
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user