daemon: mark some classes and methods 'final'
As suggested by gcc's -Wsuggest-final-types and -Wsuggest-final-methods
Change-Id: I1622857ee53581efd0c6ce3fe93199c72202d817
diff --git a/daemon/face/ethernet-channel.hpp b/daemon/face/ethernet-channel.hpp
index 36d32be..7e7fa87 100644
--- a/daemon/face/ethernet-channel.hpp
+++ b/daemon/face/ethernet-channel.hpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2014-2018, Regents of the University of California,
+ * Copyright (c) 2014-2021, Regents of the University of California,
* Arizona Board of Regents,
* Colorado State University,
* University Pierre & Marie Curie, Sorbonne University,
@@ -29,6 +29,7 @@
#include "channel.hpp"
#include "ethernet-protocol.hpp"
#include "pcap-helper.hpp"
+
#include <ndn-cxx/net/network-interface.hpp>
namespace nfd {
@@ -37,7 +38,7 @@
/**
* \brief Class implementing Ethernet-based channel to create faces
*/
-class EthernetChannel : public Channel
+class EthernetChannel final : public Channel
{
public:
/**
@@ -63,13 +64,13 @@
time::nanoseconds idleTimeout);
bool
- isListening() const override
+ isListening() const final
{
return m_isListening;
}
size_t
- size() const override
+ size() const final
{
return m_channelFaces.size();
}
diff --git a/daemon/face/ethernet-factory.hpp b/daemon/face/ethernet-factory.hpp
index 9b25b3c..578a901 100644
--- a/daemon/face/ethernet-factory.hpp
+++ b/daemon/face/ethernet-factory.hpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2014-2018, Regents of the University of California,
+ * Copyright (c) 2014-2021, Regents of the University of California,
* Arizona Board of Regents,
* Colorado State University,
* University Pierre & Marie Curie, Sorbonne University,
@@ -34,7 +34,7 @@
/** \brief Protocol factory for Ethernet
*/
-class EthernetFactory : public ProtocolFactory
+class EthernetFactory final : public ProtocolFactory
{
public:
static const std::string&
@@ -77,15 +77,15 @@
*/
void
doProcessConfig(OptionalConfigSection configSection,
- FaceSystem::ConfigContext& context) override;
+ FaceSystem::ConfigContext& context) final;
void
doCreateFace(const CreateFaceRequest& req,
const FaceCreatedCallback& onCreated,
- const FaceCreationFailedCallback& onFailure) override;
+ const FaceCreationFailedCallback& onFailure) final;
std::vector<shared_ptr<const Channel>>
- doGetChannels() const override;
+ doGetChannels() const final;
/** \brief Create EthernetChannel on \p netif if requested by \p m_unicastConfig.
* \return new or existing channel, or nullptr if no channel should be created
diff --git a/daemon/face/tcp-channel.hpp b/daemon/face/tcp-channel.hpp
index cb41b2c..788fdc1 100644
--- a/daemon/face/tcp-channel.hpp
+++ b/daemon/face/tcp-channel.hpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2014-2019, Regents of the University of California,
+ * Copyright (c) 2014-2021, Regents of the University of California,
* Arizona Board of Regents,
* Colorado State University,
* University Pierre & Marie Curie, Sorbonne University,
@@ -46,7 +46,7 @@
* connections (TcpChannel::listen needs to be called for that
* to work) or explicitly after using TcpChannel::connect method.
*/
-class TcpChannel : public Channel
+class TcpChannel final : public Channel
{
public:
/**
@@ -59,13 +59,13 @@
DetermineFaceScopeFromAddress determineFaceScope);
bool
- isListening() const override
+ isListening() const final
{
return m_acceptor.is_open();
}
size_t
- size() const override
+ size() const final
{
return m_channelFaces.size();
}
diff --git a/daemon/face/tcp-factory.hpp b/daemon/face/tcp-factory.hpp
index 519d2dc..212acbb 100644
--- a/daemon/face/tcp-factory.hpp
+++ b/daemon/face/tcp-factory.hpp
@@ -34,7 +34,7 @@
/** \brief Protocol factory for TCP over IPv4 and IPv6
*/
-class TcpFactory : public ProtocolFactory
+class TcpFactory final : public ProtocolFactory
{
public:
static const std::string&
@@ -61,15 +61,15 @@
*/
void
doProcessConfig(OptionalConfigSection configSection,
- FaceSystem::ConfigContext& context) override;
+ FaceSystem::ConfigContext& context) final;
void
doCreateFace(const CreateFaceRequest& req,
const FaceCreatedCallback& onCreated,
- const FaceCreationFailedCallback& onFailure) override;
+ const FaceCreationFailedCallback& onFailure) final;
std::vector<shared_ptr<const Channel>>
- doGetChannels() const override;
+ doGetChannels() const final;
ndn::nfd::FaceScope
determineFaceScopeFromAddresses(const boost::asio::ip::address& local,
diff --git a/daemon/face/udp-channel.hpp b/daemon/face/udp-channel.hpp
index c3f696d..25e735a 100644
--- a/daemon/face/udp-channel.hpp
+++ b/daemon/face/udp-channel.hpp
@@ -37,7 +37,7 @@
/**
* \brief Class implementing UDP-based channel to create faces
*/
-class UdpChannel : public Channel
+class UdpChannel final : public Channel
{
public:
/**
@@ -53,13 +53,13 @@
size_t defaultMtu);
bool
- isListening() const override
+ isListening() const final
{
return m_socket.is_open();
}
size_t
- size() const override
+ size() const final
{
return m_channelFaces.size();
}
diff --git a/daemon/face/udp-factory.hpp b/daemon/face/udp-factory.hpp
index a0f5b6d..28dbfaa 100644
--- a/daemon/face/udp-factory.hpp
+++ b/daemon/face/udp-factory.hpp
@@ -34,7 +34,7 @@
/** \brief Protocol factory for UDP over IPv4 and IPv6
*/
-class UdpFactory : public ProtocolFactory
+class UdpFactory final : public ProtocolFactory
{
public:
class Error : public ProtocolFactory::Error
@@ -100,15 +100,15 @@
*/
void
doProcessConfig(OptionalConfigSection configSection,
- FaceSystem::ConfigContext& context) override;
+ FaceSystem::ConfigContext& context) final;
void
doCreateFace(const CreateFaceRequest& req,
const FaceCreatedCallback& onCreated,
- const FaceCreationFailedCallback& onFailure) override;
+ const FaceCreationFailedCallback& onFailure) final;
std::vector<shared_ptr<const Channel>>
- doGetChannels() const override;
+ doGetChannels() const final;
/** \brief Create UDP multicast faces on \p netif if needed by \p m_mcastConfig
* \return list of faces (just created or already existing) on \p netif
diff --git a/daemon/face/unix-stream-channel.hpp b/daemon/face/unix-stream-channel.hpp
index 6a49667..1faffa8 100644
--- a/daemon/face/unix-stream-channel.hpp
+++ b/daemon/face/unix-stream-channel.hpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2014-2018, Regents of the University of California,
+ * Copyright (c) 2014-2021, Regents of the University of California,
* Arizona Board of Regents,
* Colorado State University,
* University Pierre & Marie Curie, Sorbonne University,
@@ -42,7 +42,7 @@
* Channel can create faces as a response to incoming IPC connections
* (UnixStreamChannel::listen needs to be called for that to work).
*/
-class UnixStreamChannel : public Channel
+class UnixStreamChannel final : public Channel
{
public:
/**
@@ -66,16 +66,16 @@
*/
UnixStreamChannel(const unix_stream::Endpoint& endpoint, bool wantCongestionMarking);
- ~UnixStreamChannel() override;
+ ~UnixStreamChannel() final;
bool
- isListening() const override
+ isListening() const final
{
return m_acceptor.is_open();
}
size_t
- size() const override
+ size() const final
{
return m_size;
}
diff --git a/daemon/face/unix-stream-factory.hpp b/daemon/face/unix-stream-factory.hpp
index 8e4bee5..45be220 100644
--- a/daemon/face/unix-stream-factory.hpp
+++ b/daemon/face/unix-stream-factory.hpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2014-2018, Regents of the University of California,
+ * Copyright (c) 2014-2021, Regents of the University of California,
* Arizona Board of Regents,
* Colorado State University,
* University Pierre & Marie Curie, Sorbonne University,
@@ -34,7 +34,7 @@
/** \brief Protocol factory for stream-oriented Unix sockets
*/
-class UnixStreamFactory : public ProtocolFactory
+class UnixStreamFactory final : public ProtocolFactory
{
public:
static const std::string&
@@ -60,10 +60,10 @@
*/
void
doProcessConfig(OptionalConfigSection configSection,
- FaceSystem::ConfigContext& context) override;
+ FaceSystem::ConfigContext& context) final;
std::vector<shared_ptr<const Channel>>
- doGetChannels() const override;
+ doGetChannels() const final;
private:
bool m_wantCongestionMarking = false;
diff --git a/daemon/face/websocket-channel.hpp b/daemon/face/websocket-channel.hpp
index 1409289..1729841 100644
--- a/daemon/face/websocket-channel.hpp
+++ b/daemon/face/websocket-channel.hpp
@@ -40,7 +40,7 @@
/**
* \brief Class implementing WebSocket-based channel to create faces
*/
-class WebSocketChannel : public Channel
+class WebSocketChannel final : public Channel
{
public:
/**
@@ -54,13 +54,13 @@
WebSocketChannel(const websocket::Endpoint& localEndpoint);
bool
- isListening() const override
+ isListening() const final
{
return m_server.is_listening();
}
size_t
- size() const override
+ size() const final
{
return m_channelFaces.size();
}
diff --git a/daemon/face/websocket-factory.hpp b/daemon/face/websocket-factory.hpp
index a4b6a46..721a1eb 100644
--- a/daemon/face/websocket-factory.hpp
+++ b/daemon/face/websocket-factory.hpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2014-2018, Regents of the University of California,
+ * Copyright (c) 2014-2021, Regents of the University of California,
* Arizona Board of Regents,
* Colorado State University,
* University Pierre & Marie Curie, Sorbonne University,
@@ -34,7 +34,7 @@
/** \brief Protocol factory for WebSocket
*/
-class WebSocketFactory : public ProtocolFactory
+class WebSocketFactory final : public ProtocolFactory
{
public:
static const std::string&
@@ -62,10 +62,10 @@
*/
void
doProcessConfig(OptionalConfigSection configSection,
- FaceSystem::ConfigContext& context) override;
+ FaceSystem::ConfigContext& context) final;
std::vector<shared_ptr<const Channel>>
- doGetChannels() const override;
+ doGetChannels() const final;
private:
std::map<websocket::Endpoint, shared_ptr<WebSocketChannel>> m_channels;
diff --git a/daemon/fw/access-strategy.hpp b/daemon/fw/access-strategy.hpp
index d6688fc..0f83a64 100644
--- a/daemon/fw/access-strategy.hpp
+++ b/daemon/fw/access-strategy.hpp
@@ -68,7 +68,7 @@
/** \brief StrategyInfo on PIT entry
*/
- class PitInfo : public StrategyInfo
+ class PitInfo final : public StrategyInfo
{
public:
static constexpr int
@@ -83,7 +83,7 @@
/** \brief StrategyInfo in measurements table
*/
- class MtInfo : public StrategyInfo
+ class MtInfo final : public StrategyInfo
{
public:
static constexpr int
diff --git a/daemon/fw/asf-measurements.hpp b/daemon/fw/asf-measurements.hpp
index 14039f6..3a315c9 100644
--- a/daemon/fw/asf-measurements.hpp
+++ b/daemon/fw/asf-measurements.hpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2014-2019, Regents of the University of California,
+ * Copyright (c) 2014-2021, Regents of the University of California,
* Arizona Board of Regents,
* Colorado State University,
* University Pierre & Marie Curie, Sorbonne University,
@@ -125,7 +125,7 @@
/** \brief Stores strategy information about each face in this namespace
*/
-class NamespaceInfo : public StrategyInfo
+class NamespaceInfo final : public StrategyInfo
{
public:
static constexpr int
diff --git a/daemon/fw/retx-suppression-exponential.cpp b/daemon/fw/retx-suppression-exponential.cpp
index c634173..7d0749e 100644
--- a/daemon/fw/retx-suppression-exponential.cpp
+++ b/daemon/fw/retx-suppression-exponential.cpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2014-2019, Regents of the University of California,
+ * Copyright (c) 2014-2021, Regents of the University of California,
* Arizona Board of Regents,
* Colorado State University,
* University Pierre & Marie Curie, Sorbonne University,
@@ -32,7 +32,7 @@
const RetxSuppressionExponential::Duration RetxSuppressionExponential::DEFAULT_MAX_INTERVAL = 250_ms;
const float RetxSuppressionExponential::DEFAULT_MULTIPLIER = 2.0f;
-class RetxSuppressionExponential::PitInfo : public StrategyInfo
+class RetxSuppressionExponential::PitInfo final : public StrategyInfo
{
public:
static constexpr int
diff --git a/daemon/fw/self-learning-strategy.hpp b/daemon/fw/self-learning-strategy.hpp
index 9b01005..7ffefc2 100644
--- a/daemon/fw/self-learning-strategy.hpp
+++ b/daemon/fw/self-learning-strategy.hpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2014-2020, Regents of the University of California,
+ * Copyright (c) 2014-2021, Regents of the University of California,
* Arizona Board of Regents,
* Colorado State University,
* University Pierre & Marie Curie, Sorbonne University,
@@ -50,7 +50,7 @@
getStrategyName();
/// StrategyInfo on pit::InRecord
- class InRecordInfo : public StrategyInfo
+ class InRecordInfo final : public StrategyInfo
{
public:
static constexpr int
@@ -64,7 +64,7 @@
};
/// StrategyInfo on pit::OutRecord
- class OutRecordInfo : public StrategyInfo
+ class OutRecordInfo final : public StrategyInfo
{
public:
static constexpr int
diff --git a/daemon/fw/unsolicited-data-policy.hpp b/daemon/fw/unsolicited-data-policy.hpp
index 766db38..5d562a1 100644
--- a/daemon/fw/unsolicited-data-policy.hpp
+++ b/daemon/fw/unsolicited-data-policy.hpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2016, Regents of the University of California,
+/*
+ * Copyright (c) 2014-2021, Regents of the University of California,
* Arizona Board of Regents,
* Colorado State University,
* University Pierre & Marie Curie, Sorbonne University,
@@ -87,7 +87,7 @@
/** \brief drops all unsolicited Data
*/
-class DropAllUnsolicitedDataPolicy : public UnsolicitedDataPolicy
+class DropAllUnsolicitedDataPolicy final : public UnsolicitedDataPolicy
{
public:
UnsolicitedDataDecision
@@ -99,7 +99,7 @@
/** \brief admits unsolicited Data from local faces
*/
-class AdmitLocalUnsolicitedDataPolicy : public UnsolicitedDataPolicy
+class AdmitLocalUnsolicitedDataPolicy final : public UnsolicitedDataPolicy
{
public:
UnsolicitedDataDecision
@@ -111,7 +111,7 @@
/** \brief admits unsolicited Data from non-local faces
*/
-class AdmitNetworkUnsolicitedDataPolicy : public UnsolicitedDataPolicy
+class AdmitNetworkUnsolicitedDataPolicy final : public UnsolicitedDataPolicy
{
public:
UnsolicitedDataDecision
@@ -123,7 +123,7 @@
/** \brief admits all unsolicited Data
*/
-class AdmitAllUnsolicitedDataPolicy : public UnsolicitedDataPolicy
+class AdmitAllUnsolicitedDataPolicy final : public UnsolicitedDataPolicy
{
public:
UnsolicitedDataDecision
@@ -133,9 +133,9 @@
static const std::string POLICY_NAME;
};
-/** \brief the default UnsolicitedDataPolicy
+/** \brief The default UnsolicitedDataPolicy
*/
-typedef DropAllUnsolicitedDataPolicy DefaultUnsolicitedDataPolicy;
+using DefaultUnsolicitedDataPolicy = DropAllUnsolicitedDataPolicy;
} // namespace fw
} // namespace nfd
diff --git a/daemon/mgmt/command-authenticator.cpp b/daemon/mgmt/command-authenticator.cpp
index 833400c..db50e4d 100644
--- a/daemon/mgmt/command-authenticator.cpp
+++ b/daemon/mgmt/command-authenticator.cpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2014-2020, Regents of the University of California,
+ * Copyright (c) 2014-2021, Regents of the University of California,
* Arizona Board of Regents,
* Colorado State University,
* University Pierre & Marie Curie, Sorbonne University,
@@ -65,7 +65,7 @@
/** \brief a validation policy that only permits Interest signed by a trust anchor
*/
-class CommandAuthenticatorValidationPolicy : public security::ValidationPolicy
+class CommandAuthenticatorValidationPolicy final : public security::ValidationPolicy
{
public:
void
@@ -87,8 +87,8 @@
}
void
- checkPolicy(const Data& data, const shared_ptr<security::ValidationState>& state,
- const ValidationContinuation& continueValidation) final
+ checkPolicy(const Data&, const shared_ptr<security::ValidationState>&,
+ const ValidationContinuation&) final
{
// Non-certificate Data are not handled by CommandAuthenticator.
// Non-anchor certificates cannot be retrieved by offline fetcher.
diff --git a/daemon/mgmt/cs-manager.hpp b/daemon/mgmt/cs-manager.hpp
index 83db017..95fbffc 100644
--- a/daemon/mgmt/cs-manager.hpp
+++ b/daemon/mgmt/cs-manager.hpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2014-2019, Regents of the University of California,
+ * Copyright (c) 2014-2021, Regents of the University of California,
* Arizona Board of Regents,
* Colorado State University,
* University Pierre & Marie Curie, Sorbonne University,
@@ -40,7 +40,7 @@
* \brief Implements the CS Management of NFD Management Protocol.
* \sa https://redmine.named-data.net/projects/nfd/wiki/CsMgmt
*/
-class CsManager : public ManagerBase
+class CsManager final : public ManagerBase
{
public:
CsManager(cs::Cs& cs, const ForwarderCounters& fwCounters,
diff --git a/daemon/mgmt/face-manager.hpp b/daemon/mgmt/face-manager.hpp
index c1547c5..db2e5aa 100644
--- a/daemon/mgmt/face-manager.hpp
+++ b/daemon/mgmt/face-manager.hpp
@@ -36,7 +36,7 @@
* @brief Implements the Face Management of NFD Management Protocol.
* @sa https://redmine.named-data.net/projects/nfd/wiki/FaceMgmt
*/
-class FaceManager : public ManagerBase
+class FaceManager final : public ManagerBase
{
public:
FaceManager(FaceSystem& faceSystem,
diff --git a/daemon/mgmt/fib-manager.hpp b/daemon/mgmt/fib-manager.hpp
index 073fe43..ca04391 100644
--- a/daemon/mgmt/fib-manager.hpp
+++ b/daemon/mgmt/fib-manager.hpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2014-2019, Regents of the University of California,
+ * Copyright (c) 2014-2021, Regents of the University of California,
* Arizona Board of Regents,
* Colorado State University,
* University Pierre & Marie Curie, Sorbonne University,
@@ -40,7 +40,7 @@
* @brief Implements the FIB Management of NFD Management Protocol.
* @sa https://redmine.named-data.net/projects/nfd/wiki/FibMgmt
*/
-class FibManager : public ManagerBase
+class FibManager final : public ManagerBase
{
public:
FibManager(fib::Fib& fib, const FaceTable& faceTable,
diff --git a/daemon/mgmt/rib-manager.hpp b/daemon/mgmt/rib-manager.hpp
index 3b2e794..98739f0 100644
--- a/daemon/mgmt/rib-manager.hpp
+++ b/daemon/mgmt/rib-manager.hpp
@@ -46,7 +46,7 @@
* @brief Implements the RIB Management of NFD Management Protocol.
* @sa https://redmine.named-data.net/projects/nfd/wiki/RibMgmt
*/
-class RibManager : public ManagerBase
+class RibManager final : public ManagerBase
{
public:
RibManager(rib::Rib& rib, ndn::Face& face, ndn::KeyChain& keyChain,
@@ -220,7 +220,7 @@
setFaceForSelfRegistration(const Interest& request, ControlParameters& parameters);
ndn::mgmt::Authorization
- makeAuthorization(const std::string& verb) override;
+ makeAuthorization(const std::string& verb) final;
private: // Face monitor
void
diff --git a/daemon/mgmt/strategy-choice-manager.hpp b/daemon/mgmt/strategy-choice-manager.hpp
index 370364b..6c91af8 100644
--- a/daemon/mgmt/strategy-choice-manager.hpp
+++ b/daemon/mgmt/strategy-choice-manager.hpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2014-2019, Regents of the University of California,
+ * Copyright (c) 2014-2021, Regents of the University of California,
* Arizona Board of Regents,
* Colorado State University,
* University Pierre & Marie Curie, Sorbonne University,
@@ -38,7 +38,7 @@
* @brief Implements the Strategy Choice Management of NFD Management Protocol.
* @sa https://redmine.named-data.net/projects/nfd/wiki/StrategyChoice
*/
-class StrategyChoiceManager : public ManagerBase
+class StrategyChoiceManager final : public ManagerBase
{
public:
StrategyChoiceManager(strategy_choice::StrategyChoice& table,
diff --git a/daemon/table/cs-policy-lru.hpp b/daemon/table/cs-policy-lru.hpp
index 017de7e..5d61e47 100644
--- a/daemon/table/cs-policy-lru.hpp
+++ b/daemon/table/cs-policy-lru.hpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2014-2019, Regents of the University of California,
+ * Copyright (c) 2014-2021, Regents of the University of California,
* Arizona Board of Regents,
* Colorado State University,
* University Pierre & Marie Curie, Sorbonne University,
@@ -46,7 +46,7 @@
/** \brief Least-Recently-Used (LRU) replacement policy
*/
-class LruPolicy : public Policy
+class LruPolicy final : public Policy
{
public:
LruPolicy();
@@ -56,19 +56,19 @@
private:
void
- doAfterInsert(EntryRef i) override;
+ doAfterInsert(EntryRef i) final;
void
- doAfterRefresh(EntryRef i) override;
+ doAfterRefresh(EntryRef i) final;
void
- doBeforeErase(EntryRef i) override;
+ doBeforeErase(EntryRef i) final;
void
- doBeforeUse(EntryRef i) override;
+ doBeforeUse(EntryRef i) final;
void
- evictEntries() override;
+ evictEntries() final;
private:
/** \brief moves an entry to the end of queue
diff --git a/daemon/table/cs-policy-priority-fifo.hpp b/daemon/table/cs-policy-priority-fifo.hpp
index 9671408..757b0c5 100644
--- a/daemon/table/cs-policy-priority-fifo.hpp
+++ b/daemon/table/cs-policy-priority-fifo.hpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2014-2019, Regents of the University of California,
+ * Copyright (c) 2014-2021, Regents of the University of California,
* Arizona Board of Regents,
* Colorado State University,
* University Pierre & Marie Curie, Sorbonne University,
@@ -62,31 +62,31 @@
* Eviction procedure exhausts the first queue before moving onto the next queue,
* in the order of unsolicited, stale, and fresh queue.
*/
-class PriorityFifoPolicy : public Policy
+class PriorityFifoPolicy final : public Policy
{
public:
PriorityFifoPolicy();
- ~PriorityFifoPolicy() override;
+ ~PriorityFifoPolicy() final;
public:
static const std::string POLICY_NAME;
private:
void
- doAfterInsert(EntryRef i) override;
+ doAfterInsert(EntryRef i) final;
void
- doAfterRefresh(EntryRef i) override;
+ doAfterRefresh(EntryRef i) final;
void
- doBeforeErase(EntryRef i) override;
+ doBeforeErase(EntryRef i) final;
void
- doBeforeUse(EntryRef i) override;
+ doBeforeUse(EntryRef i) final;
void
- evictEntries() override;
+ evictEntries() final;
private:
/** \brief evicts one entry
diff --git a/daemon/table/name-tree-iterator.hpp b/daemon/table/name-tree-iterator.hpp
index 973c961..d99e5f9 100644
--- a/daemon/table/name-tree-iterator.hpp
+++ b/daemon/table/name-tree-iterator.hpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2014-2018, Regents of the University of California,
+ * Copyright (c) 2014-2021, Regents of the University of California,
* Arizona Board of Regents,
* Colorado State University,
* University Pierre & Marie Curie, Sorbonne University,
@@ -158,13 +158,13 @@
/** \brief full enumeration implementation
*/
-class FullEnumerationImpl : public EnumerationImpl
+class FullEnumerationImpl final : public EnumerationImpl
{
public:
FullEnumerationImpl(const NameTree& nt, const EntrySelector& pred);
void
- advance(Iterator& i) override;
+ advance(Iterator& i) final;
private:
EntrySelector m_pred;
@@ -175,13 +175,13 @@
* Iterator::m_ref should be initialized to subtree root.
* Iterator::m_state LSB indicates whether to visit children of m_entry.
*/
-class PartialEnumerationImpl : public EnumerationImpl
+class PartialEnumerationImpl final : public EnumerationImpl
{
public:
PartialEnumerationImpl(const NameTree& nt, const EntrySubTreeSelector& pred);
void
- advance(Iterator& i) override;
+ advance(Iterator& i) final;
private:
EntrySubTreeSelector m_pred;
@@ -191,14 +191,14 @@
*
* Iterator::m_ref should be initialized to longest prefix matched entry.
*/
-class PrefixMatchImpl : public EnumerationImpl
+class PrefixMatchImpl final : public EnumerationImpl
{
public:
PrefixMatchImpl(const NameTree& nt, const EntrySelector& pred);
private:
void
- advance(Iterator& i) override;
+ advance(Iterator& i) final;
private:
EntrySelector m_pred;