5 #ifndef UAVCAN_TRANSPORT_TRANSFER_BUFFER_HPP_INCLUDED 6 #define UAVCAN_TRANSPORT_TRANSFER_BUFFER_HPP_INCLUDED 35 virtual int read(
unsigned offset,
uint8_t* data,
unsigned len)
const;
36 virtual int write(
unsigned offset,
const uint8_t* data,
unsigned len);
49 template <u
int16_t Size>
56 StaticAssert<(Size > 0)>::
check();
77 , transfer_type_(ttype)
113 void read(
uint8_t*& outptr,
unsigned target_offset,
114 unsigned& total_offset,
unsigned& left_to_read);
115 void write(
const uint8_t*& inptr,
unsigned target_offset,
116 unsigned& total_offset,
unsigned& left_to_write);
127 allocator_(allocator),
131 StaticAssert<(Block::Size > 8)>::
check();
141 virtual int read(
unsigned offset,
uint8_t* data,
unsigned len)
const;
142 virtual int write(
unsigned offset,
const uint8_t* data,
unsigned len);
163 allocator_(allocator),
164 max_buf_size_(max_buf_size)
172 bool isEmpty()
const;
174 unsigned getNumBuffers()
const;
199 #endif // UAVCAN_TRANSPORT_TRANSFER_BUFFER_HPP_INCLUDED
ITransferBuffer * access()
void setMaxWritePos(uint16_t value)
virtual int write(unsigned offset, const uint8_t *data, unsigned len)
uint16_t getMaxWritePos() const
ITransferBuffer * create(const TransferBufferManagerKey &key)
static const unsigned MemPoolBlockSize
Safe default that should be OK for any platform.
StaticTransferBufferImpl(uint8_t *buf, uint16_t buf_size)
LinkedListRoot< Block > blocks_
const uint16_t max_buf_size_
const TransferBufferManagerKey & getKey() const
ITransferBuffer * create()
const TransferBufferManagerKey key_
virtual int read(unsigned offset, uint8_t *data, unsigned len) const
TransferBufferAccessor(TransferBufferManager &bufmgr, TransferBufferManagerKey key)
TransferBufferManagerEntry(IPoolAllocator &allocator, uint16_t max_size)
const uint8_t * getRawPtr() const
static std::string toString(long x)
TransferType getTransferType() const
bool operator==(const TransferBufferManagerKey &rhs) const
TransferBufferManager(uint16_t max_buf_size, IPoolAllocator &allocator)
virtual ~TransferBufferManagerEntry()
TransferBufferManagerKey()
IPoolAllocator & allocator_
LinkedListRoot< TransferBufferManagerEntry > buffers_
TransferBufferManagerKey key_
TransferBufferManager & bufmgr_
void remove(const TransferBufferManagerKey &key)
IPoolAllocator & allocator_
ITransferBuffer * access(const TransferBufferManagerKey &key)
TransferBufferManagerKey(NodeID node_id, TransferType ttype)