mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-22 14:43:33 +08:00
Explicit virtual keyword
This commit is contained in:
@@ -53,13 +53,13 @@ public:
|
||||
|
||||
bool addPool(IPoolAllocator* pool);
|
||||
|
||||
void* allocate(std::size_t size);
|
||||
void deallocate(const void* ptr);
|
||||
virtual void* allocate(std::size_t size);
|
||||
virtual void deallocate(const void* ptr);
|
||||
|
||||
bool isInPool(const void* ptr) const;
|
||||
virtual bool isInPool(const void* ptr) const;
|
||||
|
||||
std::size_t getBlockSize() const;
|
||||
std::size_t getNumBlocks() const;
|
||||
virtual std::size_t getBlockSize() const;
|
||||
virtual std::size_t getNumBlocks() const;
|
||||
};
|
||||
|
||||
|
||||
@@ -86,13 +86,13 @@ public:
|
||||
|
||||
PoolAllocator();
|
||||
|
||||
void* allocate(std::size_t size);
|
||||
void deallocate(const void* ptr);
|
||||
virtual void* allocate(std::size_t size);
|
||||
virtual void deallocate(const void* ptr);
|
||||
|
||||
bool isInPool(const void* ptr) const;
|
||||
virtual bool isInPool(const void* ptr) const;
|
||||
|
||||
std::size_t getBlockSize() const { return BlockSize; }
|
||||
std::size_t getNumBlocks() const { return NumBlocks; }
|
||||
virtual std::size_t getBlockSize() const { return BlockSize; }
|
||||
virtual std::size_t getNumBlocks() const { return NumBlocks; }
|
||||
|
||||
unsigned getNumFreeBlocks() const;
|
||||
unsigned getNumUsedBlocks() const { return NumBlocks - getNumFreeBlocks(); }
|
||||
@@ -114,13 +114,13 @@ public:
|
||||
assert(max_blocks_ > 0);
|
||||
}
|
||||
|
||||
void* allocate(std::size_t size);
|
||||
void deallocate(const void* ptr);
|
||||
virtual void* allocate(std::size_t size);
|
||||
virtual void deallocate(const void* ptr);
|
||||
|
||||
bool isInPool(const void* ptr) const;
|
||||
virtual bool isInPool(const void* ptr) const;
|
||||
|
||||
std::size_t getBlockSize() const;
|
||||
std::size_t getNumBlocks() const;
|
||||
virtual std::size_t getBlockSize() const;
|
||||
virtual std::size_t getNumBlocks() const;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
@@ -34,19 +34,19 @@ class UAVCAN_EXPORT MarshalBufferProvider : public IMarshalBufferProvider
|
||||
{
|
||||
StaticTransferBuffer<MaxSize_> buf_;
|
||||
|
||||
int read(unsigned offset, uint8_t* data, unsigned len) const
|
||||
virtual int read(unsigned offset, uint8_t* data, unsigned len) const
|
||||
{
|
||||
return buf_.read(offset, data, len);
|
||||
}
|
||||
|
||||
int write(unsigned offset, const uint8_t* data, unsigned len)
|
||||
virtual int write(unsigned offset, const uint8_t* data, unsigned len)
|
||||
{
|
||||
return buf_.write(offset, data, len);
|
||||
}
|
||||
|
||||
const uint8_t* getDataPtr() const { return buf_.getRawPtr(); }
|
||||
virtual const uint8_t* getDataPtr() const { return buf_.getRawPtr(); }
|
||||
|
||||
unsigned getDataLength() const { return buf_.getMaxWritePos(); }
|
||||
virtual unsigned getDataLength() const { return buf_.getMaxWritePos(); }
|
||||
|
||||
public:
|
||||
void reset() { buf_.reset(); }
|
||||
@@ -57,7 +57,7 @@ class UAVCAN_EXPORT MarshalBufferProvider : public IMarshalBufferProvider
|
||||
public:
|
||||
enum { MaxSize = MaxSize_ };
|
||||
|
||||
IMarshalBuffer* getBuffer(unsigned size)
|
||||
virtual IMarshalBuffer* getBuffer(unsigned size)
|
||||
{
|
||||
if (size > MaxSize)
|
||||
{
|
||||
|
||||
@@ -130,7 +130,7 @@ private:
|
||||
|
||||
void handleReceivedDataStruct(ReceivedDataStructure<ResponseType>& response);
|
||||
|
||||
void handleDeadline(MonotonicTime);
|
||||
virtual void handleDeadline(MonotonicTime);
|
||||
|
||||
public:
|
||||
explicit ServiceClient(INode& node, const Callback& callback = Callback())
|
||||
|
||||
@@ -41,7 +41,7 @@ class UAVCAN_EXPORT TimerBase : private DeadlineHandler
|
||||
{
|
||||
MonotonicDuration period_;
|
||||
|
||||
void handleDeadline(MonotonicTime current);
|
||||
virtual void handleDeadline(MonotonicTime current);
|
||||
|
||||
public:
|
||||
using DeadlineHandler::stop;
|
||||
@@ -73,7 +73,7 @@ public:
|
||||
private:
|
||||
Callback callback_;
|
||||
|
||||
void handleTimerEvent(const TimerEvent& event)
|
||||
virtual void handleTimerEvent(const TimerEvent& event)
|
||||
{
|
||||
if (try_implicit_cast<bool>(callback_, true))
|
||||
{
|
||||
|
||||
@@ -46,7 +46,7 @@ class UAVCAN_EXPORT GlobalTimeSyncMaster : protected LoopbackFrameListenerBase
|
||||
DataTypeID dtid_;
|
||||
bool initialized_;
|
||||
|
||||
void handleLoopbackFrame(const RxFrame& frame);
|
||||
virtual void handleLoopbackFrame(const RxFrame& frame);
|
||||
|
||||
int getNextTransferID(TransferID& tid);
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ private:
|
||||
|
||||
void handleNodeStatus(const ReceivedDataStructure<protocol::NodeStatus>& msg);
|
||||
|
||||
void handleTimerEvent(const TimerEvent&);
|
||||
virtual void handleTimerEvent(const TimerEvent&);
|
||||
|
||||
protected:
|
||||
/**
|
||||
|
||||
@@ -40,7 +40,7 @@ class UAVCAN_EXPORT NodeStatusProvider : private TimerBase
|
||||
int publish();
|
||||
void publishWithErrorHandling();
|
||||
|
||||
void handleTimerEvent(const TimerEvent&);
|
||||
virtual void handleTimerEvent(const TimerEvent&);
|
||||
void handleGlobalDiscoveryRequest(const protocol::GlobalDiscoveryRequest&);
|
||||
void handleGetNodeInfoRequest(const protocol::GetNodeInfo::Request&, protocol::GetNodeInfo::Response& rsp);
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ class UAVCAN_EXPORT PanicBroadcaster : private TimerBase
|
||||
|
||||
void publishOnce();
|
||||
|
||||
void handleTimerEvent(const TimerEvent&);
|
||||
virtual void handleTimerEvent(const TimerEvent&);
|
||||
|
||||
public:
|
||||
explicit PanicBroadcaster(INode& node)
|
||||
|
||||
@@ -126,11 +126,11 @@ public:
|
||||
: map_(allocator)
|
||||
{ }
|
||||
|
||||
TransferID* accessOrCreate(const OutgoingTransferRegistryKey& key, MonotonicTime new_deadline);
|
||||
virtual TransferID* accessOrCreate(const OutgoingTransferRegistryKey& key, MonotonicTime new_deadline);
|
||||
|
||||
bool exists(DataTypeID dtid, TransferType tt) const;
|
||||
virtual bool exists(DataTypeID dtid, TransferType tt) const;
|
||||
|
||||
void cleanup(MonotonicTime ts);
|
||||
virtual void cleanup(MonotonicTime ts);
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
@@ -113,7 +113,7 @@ class UAVCAN_EXPORT DynamicTransferBufferManagerEntry
|
||||
/// Reset functionality must be implemented in a non-virtual method to call it safely from the destructor.
|
||||
void doReset();
|
||||
|
||||
void resetImpl();
|
||||
virtual void resetImpl();
|
||||
|
||||
public:
|
||||
DynamicTransferBufferManagerEntry(IPoolAllocator& allocator, uint16_t max_size)
|
||||
@@ -126,7 +126,7 @@ public:
|
||||
IsDynamicallyAllocatable<DynamicTransferBufferManagerEntry>::check();
|
||||
}
|
||||
|
||||
~DynamicTransferBufferManagerEntry()
|
||||
virtual ~DynamicTransferBufferManagerEntry()
|
||||
{
|
||||
doReset();
|
||||
}
|
||||
@@ -134,8 +134,8 @@ public:
|
||||
static DynamicTransferBufferManagerEntry* instantiate(IPoolAllocator& allocator, uint16_t max_size);
|
||||
static void destroy(DynamicTransferBufferManagerEntry*& obj, IPoolAllocator& allocator);
|
||||
|
||||
int read(unsigned offset, uint8_t* data, unsigned len) const;
|
||||
int write(unsigned offset, const uint8_t* data, unsigned len);
|
||||
virtual int read(unsigned offset, uint8_t* data, unsigned len) const;
|
||||
virtual int write(unsigned offset, const uint8_t* data, unsigned len);
|
||||
};
|
||||
UAVCAN_PACKED_END
|
||||
|
||||
@@ -155,8 +155,8 @@ public:
|
||||
, max_write_pos_(0)
|
||||
{ }
|
||||
|
||||
int read(unsigned offset, uint8_t* data, unsigned len) const;
|
||||
int write(unsigned offset, const uint8_t* data, unsigned len);
|
||||
virtual int read(unsigned offset, uint8_t* data, unsigned len) const;
|
||||
virtual int write(unsigned offset, const uint8_t* data, unsigned len);
|
||||
|
||||
void reset();
|
||||
|
||||
@@ -188,15 +188,15 @@ class StaticTransferBufferManagerEntryImpl : public TransferBufferManagerEntry
|
||||
{
|
||||
StaticTransferBufferImpl buf_;
|
||||
|
||||
void resetImpl();
|
||||
virtual void resetImpl();
|
||||
|
||||
public:
|
||||
StaticTransferBufferManagerEntryImpl(uint8_t* buf, uint16_t buf_size)
|
||||
: buf_(buf, buf_size)
|
||||
{ }
|
||||
|
||||
int read(unsigned offset, uint8_t* data, unsigned len) const;
|
||||
int write(unsigned offset, const uint8_t* data, unsigned len);
|
||||
virtual int read(unsigned offset, uint8_t* data, unsigned len) const;
|
||||
virtual int write(unsigned offset, const uint8_t* data, unsigned len);
|
||||
|
||||
bool migrateFrom(const TransferBufferManagerEntry* tbme);
|
||||
};
|
||||
@@ -265,13 +265,13 @@ public:
|
||||
, max_buf_size_(max_buf_size)
|
||||
{ }
|
||||
|
||||
~TransferBufferManagerImpl();
|
||||
virtual ~TransferBufferManagerImpl();
|
||||
|
||||
ITransferBuffer* access(const TransferBufferManagerKey& key);
|
||||
ITransferBuffer* create(const TransferBufferManagerKey& key);
|
||||
void remove(const TransferBufferManagerKey& key);
|
||||
virtual ITransferBuffer* access(const TransferBufferManagerKey& key);
|
||||
virtual ITransferBuffer* create(const TransferBufferManagerKey& key);
|
||||
virtual void remove(const TransferBufferManagerKey& key);
|
||||
virtual bool isEmpty() const;
|
||||
|
||||
bool isEmpty() const;
|
||||
unsigned getNumDynamicBuffers() const;
|
||||
unsigned getNumStaticBuffers() const;
|
||||
};
|
||||
@@ -281,7 +281,7 @@ class UAVCAN_EXPORT TransferBufferManager : public TransferBufferManagerImpl
|
||||
{
|
||||
mutable StaticTransferBufferManagerEntry<MaxBufSize> static_buffers_[NumStaticBufs];
|
||||
|
||||
StaticTransferBufferManagerEntry<MaxBufSize>* getStaticByIndex(uint16_t index) const
|
||||
virtual StaticTransferBufferManagerEntry<MaxBufSize>* getStaticByIndex(uint16_t index) const
|
||||
{
|
||||
return (index < NumStaticBufs) ? &static_buffers_[index] : NULL;
|
||||
}
|
||||
@@ -300,7 +300,7 @@ public:
|
||||
template <uint16_t MaxBufSize>
|
||||
class UAVCAN_EXPORT TransferBufferManager<MaxBufSize, 0> : public TransferBufferManagerImpl
|
||||
{
|
||||
StaticTransferBufferManagerEntry<MaxBufSize>* getStaticByIndex(uint16_t) const
|
||||
virtual StaticTransferBufferManagerEntry<MaxBufSize>* getStaticByIndex(uint16_t) const
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
@@ -319,10 +319,10 @@ class UAVCAN_EXPORT TransferBufferManager<0, 0> : public ITransferBufferManager
|
||||
public:
|
||||
TransferBufferManager() { }
|
||||
TransferBufferManager(IPoolAllocator&) { }
|
||||
ITransferBuffer* access(const TransferBufferManagerKey&) { return NULL; }
|
||||
ITransferBuffer* create(const TransferBufferManagerKey&) { return NULL; }
|
||||
void remove(const TransferBufferManagerKey&) { }
|
||||
bool isEmpty() const { return true; }
|
||||
virtual ITransferBuffer* access(const TransferBufferManagerKey&) { return NULL; }
|
||||
virtual ITransferBuffer* create(const TransferBufferManagerKey&) { return NULL; }
|
||||
virtual void remove(const TransferBufferManagerKey&) { }
|
||||
virtual bool isEmpty() const { return true; }
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ class UAVCAN_EXPORT IncomingTransfer : public ITransferBuffer
|
||||
uint8_t iface_index_;
|
||||
|
||||
/// That's a no-op, asserts in debug builds
|
||||
int write(unsigned offset, const uint8_t* data, unsigned len);
|
||||
virtual int write(unsigned offset, const uint8_t* data, unsigned len);
|
||||
|
||||
protected:
|
||||
IncomingTransfer(MonotonicTime ts_mono, UtcTime ts_utc, TransferType transfer_type,
|
||||
@@ -67,7 +67,7 @@ class UAVCAN_EXPORT SingleFrameIncomingTransfer : public IncomingTransfer
|
||||
const uint8_t payload_len_;
|
||||
public:
|
||||
explicit SingleFrameIncomingTransfer(const RxFrame& frm);
|
||||
int read(unsigned offset, uint8_t* data, unsigned len) const;
|
||||
virtual int read(unsigned offset, uint8_t* data, unsigned len) const;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -79,8 +79,8 @@ class UAVCAN_EXPORT MultiFrameIncomingTransfer : public IncomingTransfer, Noncop
|
||||
public:
|
||||
MultiFrameIncomingTransfer(MonotonicTime ts_mono, UtcTime ts_utc, const RxFrame& last_frame,
|
||||
TransferBufferAccessor& tba);
|
||||
int read(unsigned offset, uint8_t* data, unsigned len) const;
|
||||
void release() { buf_acc_.remove(); }
|
||||
virtual int read(unsigned offset, uint8_t* data, unsigned len) const;
|
||||
virtual void release() { buf_acc_.remove(); }
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user