From 52de92d33437feeaf5d76cf6ea04f66d83a16b54 Mon Sep 17 00:00:00 2001 From: jsteemann Date: Fri, 4 May 2018 09:01:50 +0200 Subject: [PATCH] add missing override specifiers, add final specifiers --- arangod/Agency/Node.h | 2 +- arangod/Aql/ClusterBlocks.h | 2 +- arangod/Aql/ClusterNodes.h | 4 ++-- arangod/Aql/GraphNode.h | 2 +- arangod/Cache/CacheManagerFeatureThreads.h | 2 +- arangod/Cache/PlainCache.h | 12 +++++----- arangod/Cache/TransactionalCache.h | 12 +++++----- arangod/Graph/ShortestPathOptions.h | 2 +- arangod/Graph/SingleServerEdgeCursor.h | 2 +- arangod/Graph/Traverser.h | 2 +- arangod/Graph/TraverserDocumentCache.h | 2 +- arangod/Graph/TraverserOptions.h | 8 +++---- .../IResearch/IResearchLinkCoordinator.cpp | 16 +++++++------- arangod/IResearch/IResearchViewNode.h | 10 ++++----- arangod/MMFiles/MMFilesCollection.cpp | 2 +- .../MMFilesPersistentIndexKeyComparator.h | 8 +++---- arangod/MMFiles/MMFilesWalAccess.h | 2 +- arangod/Pregel/Algos/LineRank.cpp | 2 +- arangod/Pregel/MessageCombiner.h | 2 +- arangod/Replication/DatabaseInitialSyncer.h | 21 +----------------- arangod/Replication/DatabaseTailingSyncer.h | 4 ++-- arangod/Replication/GlobalInitialSyncer.h | 2 +- arangod/Replication/ReplicationApplier.cpp | 2 +- arangod/RestServer/ConsoleThread.h | 2 +- arangod/RestServer/DatabaseFeature.h | 2 +- .../RocksDBEngine/RocksDBBackgroundThread.h | 2 +- arangod/RocksDBEngine/RocksDBEdgeIndex.h | 2 +- .../RocksDBEngine/RocksDBPrefixExtractor.h | 10 ++++----- .../RocksDBReplicationTailing.cpp | 2 +- arangod/RocksDBEngine/RocksDBWalAccess.h | 2 +- arangod/Scheduler/JobQueue.cpp | 4 ++-- arangod/Scheduler/Scheduler.cpp | 6 ++--- arangod/VocBase/LogicalView.h | 6 ++--- arangosh/Import/AutoTuneThread.h | 2 +- arangosh/Import/SenderThread.h | 2 +- lib/Basics/AssocMultiHelpers.h | 8 +++---- lib/Basics/AssocUniqueHelpers.h | 8 +++---- lib/Basics/Exceptions.h | 2 +- lib/Logger/LogAppenderFile.h | 4 ++-- lib/Logger/LogAppenderSyslog.h | 2 +- lib/Rest/VstResponse.h | 2 +- tests/IResearch/ExpressionContextMock.h | 8 +++---- tests/IResearch/ExpressionFilter-test.cpp | 2 +- tests/IResearch/StorageEngineMock.cpp | 22 +++++++++---------- 44 files changed, 102 insertions(+), 121 deletions(-) diff --git a/arangod/Agency/Node.h b/arangod/Agency/Node.h index 87e21cd679..b71de92fd5 100644 --- a/arangod/Agency/Node.h +++ b/arangod/Agency/Node.h @@ -309,7 +309,7 @@ protected: /// @brief Get array value Slice getArray() const; -public: + public: /// @brief Clear key value store void clear(); diff --git a/arangod/Aql/ClusterBlocks.h b/arangod/Aql/ClusterBlocks.h index 6cdc47fb74..ab7dab523a 100644 --- a/arangod/Aql/ClusterBlocks.h +++ b/arangod/Aql/ClusterBlocks.h @@ -313,7 +313,7 @@ class DistributeBlock : public BlockWithClients { bool _allowSpecifiedKeys; }; -class RemoteBlock : public ExecutionBlock { +class RemoteBlock final : public ExecutionBlock { /// @brief constructors/destructors public: RemoteBlock(ExecutionEngine* engine, RemoteNode const* en, diff --git a/arangod/Aql/ClusterNodes.h b/arangod/Aql/ClusterNodes.h index 8ab631c649..48f4061974 100644 --- a/arangod/Aql/ClusterNodes.h +++ b/arangod/Aql/ClusterNodes.h @@ -39,7 +39,7 @@ class ExecutionPlan; struct Collection; /// @brief class RemoteNode -class RemoteNode : public ExecutionNode { +class RemoteNode final : public ExecutionNode { friend class ExecutionBlock; friend class RemoteBlock; @@ -308,7 +308,7 @@ class DistributeNode : public ExecutionNode { }; /// @brief class GatherNode -class GatherNode : public ExecutionNode { +class GatherNode final : public ExecutionNode { friend class ExecutionBlock; friend class GatherBlock; friend class RedundantCalculationsReplacer; diff --git a/arangod/Aql/GraphNode.h b/arangod/Aql/GraphNode.h index af02eed28a..b32d44a849 100644 --- a/arangod/Aql/GraphNode.h +++ b/arangod/Aql/GraphNode.h @@ -66,7 +66,7 @@ class GraphNode : public ExecutionNode { virtual ~GraphNode(); void toVelocyPackHelper(arangodb::velocypack::Builder& nodes, - bool verbose) const; + bool verbose) const override; /// @brief flag, if smart traversal (enterprise edition only!) is done bool isSmart() const { return _isSmart; } diff --git a/arangod/Cache/CacheManagerFeatureThreads.h b/arangod/Cache/CacheManagerFeatureThreads.h index c0a486590d..77be2efaae 100644 --- a/arangod/Cache/CacheManagerFeatureThreads.h +++ b/arangod/Cache/CacheManagerFeatureThreads.h @@ -34,7 +34,7 @@ namespace arangodb { -class CacheRebalancerThread : public Thread { +class CacheRebalancerThread final : public Thread { public: CacheRebalancerThread(cache::Manager* manager, uint64_t interval); ~CacheRebalancerThread(); diff --git a/arangod/Cache/PlainCache.h b/arangod/Cache/PlainCache.h index 79fea0e940..5cd2e614d9 100644 --- a/arangod/Cache/PlainCache.h +++ b/arangod/Cache/PlainCache.h @@ -70,7 +70,7 @@ class PlainCache final : public Cache { /// fashion. The Result contained in the return value should report an error /// code in this case. Should not block for long. ////////////////////////////////////////////////////////////////////////////// - Finding find(void const* key, uint32_t keySize); + Finding find(void const* key, uint32_t keySize) override; ////////////////////////////////////////////////////////////////////////////// /// @brief Attempts to insert the given value. @@ -80,7 +80,7 @@ class PlainCache final : public Cache { /// value if it fails to acquire a lock in a timely fashion. Should not block /// for long. ////////////////////////////////////////////////////////////////////////////// - Result insert(CachedValue* value); + Result insert(CachedValue* value) override; ////////////////////////////////////////////////////////////////////////////// /// @brief Attempts to remove the given key. @@ -90,12 +90,12 @@ class PlainCache final : public Cache { /// acquire a lock in a timely fashion. Makes more attempts to acquire a lock /// before quitting, so may block for longer than find or insert. ////////////////////////////////////////////////////////////////////////////// - Result remove(void const* key, uint32_t keySize); + Result remove(void const* key, uint32_t keySize) override; ////////////////////////////////////////////////////////////////////////////// /// @brief Does nothing; convenience method inheritance compliance ////////////////////////////////////////////////////////////////////////////// - Result blacklist(void const* key, uint32_t keySize); + Result blacklist(void const* key, uint32_t keySize) override; private: // friend class manager and tasks @@ -109,10 +109,10 @@ class PlainCache final : public Cache { std::shared_ptr table, bool enableWindowedStats); - virtual uint64_t freeMemoryFrom(uint32_t hash); + virtual uint64_t freeMemoryFrom(uint32_t hash) override; virtual void migrateBucket(void* sourcePtr, std::unique_ptr targets, - std::shared_ptr
newTable); + std::shared_ptr
newTable) override; // helpers std::tuple getBucket( diff --git a/arangod/Cache/TransactionalCache.h b/arangod/Cache/TransactionalCache.h index 7cbaa6fe71..78bca11dae 100644 --- a/arangod/Cache/TransactionalCache.h +++ b/arangod/Cache/TransactionalCache.h @@ -78,7 +78,7 @@ class TransactionalCache final : public Cache { /// fashion. The Result contained in the return value should report an error /// code in this case. Should not block for long. ////////////////////////////////////////////////////////////////////////////// - Finding find(void const* key, uint32_t keySize); + Finding find(void const* key, uint32_t keySize) override; ////////////////////////////////////////////////////////////////////////////// /// @brief Attempts to insert the given value. @@ -89,7 +89,7 @@ class TransactionalCache final : public Cache { /// value if it fails to acquire a lock in a timely fashion. Should not block /// for long. ////////////////////////////////////////////////////////////////////////////// - Result insert(CachedValue* value); + Result insert(CachedValue* value) override; ////////////////////////////////////////////////////////////////////////////// /// @brief Attempts to remove the given key. @@ -100,7 +100,7 @@ class TransactionalCache final : public Cache { /// before quitting, so may block for longer than find or insert. Client may /// re-try. ////////////////////////////////////////////////////////////////////////////// - Result remove(void const* key, uint32_t keySize); + Result remove(void const* key, uint32_t keySize) override; ////////////////////////////////////////////////////////////////////////////// /// @brief Attempts to blacklist the given key. @@ -111,7 +111,7 @@ class TransactionalCache final : public Cache { /// before quitting, so may block for longer than find or insert. Client /// should re-try. ////////////////////////////////////////////////////////////////////////////// - Result blacklist(void const* key, uint32_t keySize); + Result blacklist(void const* key, uint32_t keySize) override; private: // friend class manager and tasks @@ -125,10 +125,10 @@ class TransactionalCache final : public Cache { std::shared_ptr
table, bool enableWindowedStats); - virtual uint64_t freeMemoryFrom(uint32_t hash); + virtual uint64_t freeMemoryFrom(uint32_t hash) override; virtual void migrateBucket(void* sourcePtr, std::unique_ptr targets, - std::shared_ptr
newTable); + std::shared_ptr
newTable) override; // helpers std::tuple getBucket( diff --git a/arangod/Graph/ShortestPathOptions.h b/arangod/Graph/ShortestPathOptions.h index 5b4d18bf19..c5a2a46cda 100644 --- a/arangod/Graph/ShortestPathOptions.h +++ b/arangod/Graph/ShortestPathOptions.h @@ -39,7 +39,7 @@ class Slice; } namespace graph { -struct ShortestPathOptions : public BaseOptions { +struct ShortestPathOptions final : public BaseOptions { public: std::string start; std::string direction; diff --git a/arangod/Graph/SingleServerEdgeCursor.h b/arangod/Graph/SingleServerEdgeCursor.h index 15e8e84ce5..970fe4587c 100644 --- a/arangod/Graph/SingleServerEdgeCursor.h +++ b/arangod/Graph/SingleServerEdgeCursor.h @@ -48,7 +48,7 @@ namespace graph { struct BaseOptions; struct SingleServerEdgeDocumentToken; -class SingleServerEdgeCursor : public EdgeCursor { +class SingleServerEdgeCursor final : public EdgeCursor { private: BaseOptions* _opts; transaction::Methods* _trx; diff --git a/arangod/Graph/Traverser.h b/arangod/Graph/Traverser.h index 2d7ce0da6d..1bbf7041d3 100644 --- a/arangod/Graph/Traverser.h +++ b/arangod/Graph/Traverser.h @@ -153,7 +153,7 @@ class Traverser { /// @brief Class to read vertices. Will return each vertex exactly once! ///////////////////////////////////////////////////////////////////////////// - class UniqueVertexGetter : public VertexGetter { + class UniqueVertexGetter final : public VertexGetter { public: explicit UniqueVertexGetter(Traverser* traverser) : VertexGetter(traverser) {} diff --git a/arangod/Graph/TraverserDocumentCache.h b/arangod/Graph/TraverserDocumentCache.h index af3071baf4..b824fbc268 100644 --- a/arangod/Graph/TraverserDocumentCache.h +++ b/arangod/Graph/TraverserDocumentCache.h @@ -34,7 +34,7 @@ class Finding; namespace graph { -class TraverserDocumentCache : public TraverserCache { +class TraverserDocumentCache final : public TraverserCache { public: explicit TraverserDocumentCache(aql::Query* query); diff --git a/arangod/Graph/TraverserOptions.h b/arangod/Graph/TraverserOptions.h index 3a893f971d..86be650617 100644 --- a/arangod/Graph/TraverserOptions.h +++ b/arangod/Graph/TraverserOptions.h @@ -96,14 +96,14 @@ struct TraverserOptions : public graph::BaseOptions { virtual ~TraverserOptions(); /// @brief Build a velocypack for cloning in the plan. - void toVelocyPack(arangodb::velocypack::Builder&) const; + void toVelocyPack(arangodb::velocypack::Builder&) const override; /// @brief Build a velocypack for indexes - void toVelocyPackIndexes(arangodb::velocypack::Builder&) const; + void toVelocyPackIndexes(arangodb::velocypack::Builder&) const override; /// @brief Build a velocypack containing all relevant information /// for DBServer traverser engines. - void buildEngineInfo(arangodb::velocypack::Builder&) const; + void buildEngineInfo(arangodb::velocypack::Builder&) const override; /// @brief Add a lookup info for specific depth void addDepthLookupInfo(aql::ExecutionPlan* plan, std::string const& collectionName, @@ -123,7 +123,7 @@ struct TraverserOptions : public graph::BaseOptions { void linkTraverser(arangodb::traverser::ClusterTraverser*); - double estimateCost(size_t& nrItems) const; + double estimateCost(size_t& nrItems) const override; private: diff --git a/arangod/IResearch/IResearchLinkCoordinator.cpp b/arangod/IResearch/IResearchLinkCoordinator.cpp index 18506146d4..8007b42208 100644 --- a/arangod/IResearch/IResearchLinkCoordinator.cpp +++ b/arangod/IResearch/IResearchLinkCoordinator.cpp @@ -54,7 +54,7 @@ class IResearchLinkMMFilesCoordinator final _sparse = true; // always sparse } - bool allowExpansion() const noexcept { + bool allowExpansion() const noexcept override { return true; } @@ -69,7 +69,7 @@ class IResearchLinkMMFilesCoordinator final return true; } - int drop() { + int drop() override { return IResearchLinkCoordinator::drop().errorNumber(); } @@ -100,7 +100,7 @@ class IResearchLinkMMFilesCoordinator final return false; } - void load() noexcept { + void load() noexcept override { // NOOP } @@ -142,7 +142,7 @@ class IResearchLinkMMFilesCoordinator final arangodb::velocypack::Builder& builder, bool withFigures, bool /*forPersistence*/ - ) const { + ) const override { TRI_ASSERT(!builder.isOpenObject()); builder.openObject(); bool const success = IResearchLinkCoordinator::toVelocyPack(builder); @@ -184,7 +184,7 @@ class IResearchLinkRocksDBCoordinator final _sparse = true; // always sparse } - bool allowExpansion() const noexcept { + bool allowExpansion() const noexcept override { // maps to multivalued return true; } @@ -201,7 +201,7 @@ class IResearchLinkRocksDBCoordinator final return true; } - int drop() { + int drop() override { return IResearchLinkCoordinator::drop().errorNumber(); } @@ -230,7 +230,7 @@ class IResearchLinkRocksDBCoordinator final return false; } - void load() noexcept { + void load() noexcept override { // NOOP } @@ -277,7 +277,7 @@ class IResearchLinkRocksDBCoordinator final arangodb::velocypack::Builder& builder, bool withFigures, bool /*forPersistence*/ - ) const { + ) const override { TRI_ASSERT(!builder.isOpenObject()); builder.openObject(); bool const success = IResearchLinkCoordinator::toVelocyPack(builder); diff --git a/arangod/IResearch/IResearchViewNode.h b/arangod/IResearch/IResearchViewNode.h index 3949ea5731..8d0ab344ca 100644 --- a/arangod/IResearch/IResearchViewNode.h +++ b/arangod/IResearch/IResearchViewNode.h @@ -213,7 +213,7 @@ class IResearchViewScatterNode final : public aql::ExecutionNode { ); /// @brief return the type of the node - NodeType getType() const noexcept final { + NodeType getType() const noexcept override final { return SCATTER_IRESEARCH_VIEW; } @@ -221,21 +221,21 @@ class IResearchViewScatterNode final : public aql::ExecutionNode { void toVelocyPackHelper( arangodb::velocypack::Builder&, bool - ) const final; + ) const override final; /// @brief creates corresponding ExecutionBlock std::unique_ptr createBlock( aql::ExecutionEngine& engine, std::unordered_map const&, std::unordered_set const& includedShards - ) const final; + ) const override final; /// @brief clone ExecutionNode recursively aql::ExecutionNode* clone( aql::ExecutionPlan* plan, bool withDependencies, bool withProperties - ) const final { + ) const override final { auto node = std::make_unique( *plan, _id, *_vocbase, *_view ); @@ -246,7 +246,7 @@ class IResearchViewScatterNode final : public aql::ExecutionNode { } /// @brief estimateCost - double estimateCost(size_t&) const final; + double estimateCost(size_t&) const override final; /// @brief return the database TRI_vocbase_t& vocbase() const noexcept { diff --git a/arangod/MMFiles/MMFilesCollection.cpp b/arangod/MMFiles/MMFilesCollection.cpp index 6c631ec95a..181a69b037 100644 --- a/arangod/MMFiles/MMFilesCollection.cpp +++ b/arangod/MMFiles/MMFilesCollection.cpp @@ -80,7 +80,7 @@ class MMFilesIndexFillerTask : public basics::LocalTask { std::shared_ptr>> const& documents) : LocalTask(queue), _trx(trx), _idx(idx), _documents(documents) {} - void run() { + void run() override { TRI_ASSERT(_idx->type() != Index::IndexType::TRI_IDX_TYPE_PRIMARY_INDEX); try { diff --git a/arangod/MMFiles/MMFilesPersistentIndexKeyComparator.h b/arangod/MMFiles/MMFilesPersistentIndexKeyComparator.h index aebcf29249..47b4a22b7e 100644 --- a/arangod/MMFiles/MMFilesPersistentIndexKeyComparator.h +++ b/arangod/MMFiles/MMFilesPersistentIndexKeyComparator.h @@ -43,13 +43,13 @@ class MMFilesPersistentIndexKeyComparator final : public rocksdb::Comparator { return arangodb::velocypack::Slice(slice.data() + MMFilesPersistentIndex::keyPrefixSize()); } - int Compare(rocksdb::Slice const& lhs, rocksdb::Slice const& rhs) const; + int Compare(rocksdb::Slice const& lhs, rocksdb::Slice const& rhs) const override; - char const* Name() const { return "ArangoComparator"; } + char const* Name() const override { return "ArangoComparator"; } void FindShortestSeparator(std::string*, - rocksdb::Slice const&) const {} - void FindShortSuccessor(std::string*) const {} + rocksdb::Slice const&) const override {} + void FindShortSuccessor(std::string*) const override {} }; } diff --git a/arangod/MMFiles/MMFilesWalAccess.h b/arangod/MMFiles/MMFilesWalAccess.h index 90d17edeee..3b548da5f3 100644 --- a/arangod/MMFiles/MMFilesWalAccess.h +++ b/arangod/MMFiles/MMFilesWalAccess.h @@ -30,7 +30,7 @@ namespace arangodb { /// @brief StorageEngine agnostic wal access interface. /// TODO: add methods for _admin/wal/ and get rid of engine specific handlers -class MMFilesWalAccess : public WalAccess { +class MMFilesWalAccess final : public WalAccess { public: MMFilesWalAccess() {} diff --git a/arangod/Pregel/Algos/LineRank.cpp b/arangod/Pregel/Algos/LineRank.cpp index 0b4e5eb834..38df5a600f 100644 --- a/arangod/Pregel/Algos/LineRank.cpp +++ b/arangod/Pregel/Algos/LineRank.cpp @@ -46,7 +46,7 @@ LineRank::LineRank(arangodb::velocypack::Slice params) struct LRMasterContext : MasterContext { bool _stopNext = false; - bool postGlobalSuperstep() { + bool postGlobalSuperstep() override { float const* diff = getAggregatedValue(kDiff); TRI_ASSERT(!_stopNext || *diff == 0); if (_stopNext) { diff --git a/arangod/Pregel/MessageCombiner.h b/arangod/Pregel/MessageCombiner.h index 31d7a4659d..c4eefe463d 100644 --- a/arangod/Pregel/MessageCombiner.h +++ b/arangod/Pregel/MessageCombiner.h @@ -49,7 +49,7 @@ template struct SumCombiner : public MessageCombiner { static_assert(std::is_arithmetic::value, "Message type must be numeric"); SumCombiner() {} - void combine(M& firstValue, M const& secondValue) const { + void combine(M& firstValue, M const& secondValue) const override { firstValue += secondValue; } }; diff --git a/arangod/Replication/DatabaseInitialSyncer.h b/arangod/Replication/DatabaseInitialSyncer.h index 9149d96bd6..8b534b7f66 100644 --- a/arangod/Replication/DatabaseInitialSyncer.h +++ b/arangod/Replication/DatabaseInitialSyncer.h @@ -35,26 +35,7 @@ class LogicalCollection; class DatabaseInitialSyncer; class ReplicationApplierConfiguration; -/* -arangodb::Result handleSyncKeysMMFiles(DatabaseInitialSyncer& syncer, - arangodb::LogicalCollection* col, - std::string const& keysId, - std::string const& leaderColl, - TRI_voc_tick_t maxTick); - -arangodb::Result handleSyncKeysRocksDB(DatabaseInitialSyncer& syncer, - arangodb::LogicalCollection* col, - std::string const& keysId, - std::string const& leaderColl, - TRI_voc_tick_t maxTick); - -arangodb::Result syncChunkRocksDB(DatabaseInitialSyncer& syncer, SingleCollectionTransaction* trx, - std::string const& keysId, uint64_t chunkId, - std::string const& lowString, - std::string const& highString, - std::vector> const& markers); - */ -class DatabaseInitialSyncer : public InitialSyncer { +class DatabaseInitialSyncer final : public InitialSyncer { friend ::arangodb::Result handleSyncKeysMMFiles(DatabaseInitialSyncer& syncer, arangodb::LogicalCollection* col, std::string const& keysId); diff --git a/arangod/Replication/DatabaseTailingSyncer.h b/arangod/Replication/DatabaseTailingSyncer.h index c4cf0f4505..01f38335e6 100644 --- a/arangod/Replication/DatabaseTailingSyncer.h +++ b/arangod/Replication/DatabaseTailingSyncer.h @@ -31,7 +31,7 @@ namespace arangodb { class DatabaseReplicationApplier; -class DatabaseTailingSyncer : public TailingSyncer { +class DatabaseTailingSyncer final : public TailingSyncer { public: DatabaseTailingSyncer( TRI_vocbase_t& vocbase, @@ -70,4 +70,4 @@ class DatabaseTailingSyncer : public TailingSyncer { }; } -#endif \ No newline at end of file +#endif diff --git a/arangod/Replication/GlobalInitialSyncer.h b/arangod/Replication/GlobalInitialSyncer.h index 489181afe0..4b734e5182 100644 --- a/arangod/Replication/GlobalInitialSyncer.h +++ b/arangod/Replication/GlobalInitialSyncer.h @@ -29,7 +29,7 @@ namespace arangodb { /// Meta Syncer driving multiple initial syncer -class GlobalInitialSyncer : public InitialSyncer { +class GlobalInitialSyncer final : public InitialSyncer { public: explicit GlobalInitialSyncer(ReplicationApplierConfiguration const&); diff --git a/arangod/Replication/ReplicationApplier.cpp b/arangod/Replication/ReplicationApplier.cpp index 0eb78b812c..207917b9d5 100644 --- a/arangod/Replication/ReplicationApplier.cpp +++ b/arangod/Replication/ReplicationApplier.cpp @@ -58,7 +58,7 @@ struct ApplierThread : public Thread { shutdown(); } - void run() { + void run() override { TRI_ASSERT(_syncer != nullptr); TRI_ASSERT(_applier != nullptr); diff --git a/arangod/RestServer/ConsoleThread.h b/arangod/RestServer/ConsoleThread.h index b7d1f0cd93..88e7a7238f 100644 --- a/arangod/RestServer/ConsoleThread.h +++ b/arangod/RestServer/ConsoleThread.h @@ -38,7 +38,7 @@ namespace application_features { class ApplicationServer; } -class ConsoleThread : public Thread { +class ConsoleThread final : public Thread { ConsoleThread(const ConsoleThread&) = delete; ConsoleThread& operator=(const ConsoleThread&) = delete; diff --git a/arangod/RestServer/DatabaseFeature.h b/arangod/RestServer/DatabaseFeature.h index 497c233a1c..3798a2839b 100644 --- a/arangod/RestServer/DatabaseFeature.h +++ b/arangod/RestServer/DatabaseFeature.h @@ -42,7 +42,7 @@ namespace aql { class QueryRegistry; } -class DatabaseManagerThread : public Thread { +class DatabaseManagerThread final : public Thread { public: DatabaseManagerThread(DatabaseManagerThread const&) = delete; DatabaseManagerThread& operator=(DatabaseManagerThread const&) = delete; diff --git a/arangod/RocksDBEngine/RocksDBBackgroundThread.h b/arangod/RocksDBEngine/RocksDBBackgroundThread.h index 7731b90e70..623f2cd195 100644 --- a/arangod/RocksDBEngine/RocksDBBackgroundThread.h +++ b/arangod/RocksDBEngine/RocksDBBackgroundThread.h @@ -31,7 +31,7 @@ namespace arangodb { class RocksDBEngine; -class RocksDBBackgroundThread : public Thread { +class RocksDBBackgroundThread final : public Thread { public: ////////////////////////////////////////////////////////////////////////////// /// @brief engine pointer diff --git a/arangod/RocksDBEngine/RocksDBEdgeIndex.h b/arangod/RocksDBEngine/RocksDBEdgeIndex.h index 6b6ac036c2..20ce81f9f9 100644 --- a/arangod/RocksDBEngine/RocksDBEdgeIndex.h +++ b/arangod/RocksDBEngine/RocksDBEdgeIndex.h @@ -104,7 +104,7 @@ class RocksDBEdgeIndexWarmupTask : public basics::LocalTask { transaction::Methods* trx, rocksdb::Slice const& lower, rocksdb::Slice const& upper); - void run(); + void run() override; }; class RocksDBEdgeIndex final : public RocksDBIndex { diff --git a/arangod/RocksDBEngine/RocksDBPrefixExtractor.h b/arangod/RocksDBEngine/RocksDBPrefixExtractor.h index 81a4dc380f..43204afc91 100644 --- a/arangod/RocksDBEngine/RocksDBPrefixExtractor.h +++ b/arangod/RocksDBEngine/RocksDBPrefixExtractor.h @@ -43,9 +43,9 @@ class RocksDBPrefixExtractor final : public rocksdb::SliceTransform { RocksDBPrefixExtractor() {} ~RocksDBPrefixExtractor() {} - const char* Name() const { return "RocksDBPrefixExtractor"; } + const char* Name() const override { return "RocksDBPrefixExtractor"; } - rocksdb::Slice Transform(rocksdb::Slice const& key) const { + rocksdb::Slice Transform(rocksdb::Slice const& key) const override { // 8-byte objectID + 0..n-byte string + 1-byte '\0' // + 8 byte revisionID + 1-byte 0xFF (these are for cut off) TRI_ASSERT(key.size() >= sizeof(char) + sizeof(uint64_t)); @@ -62,18 +62,18 @@ class RocksDBPrefixExtractor final : public rocksdb::SliceTransform { } } - bool InDomain(rocksdb::Slice const& key) const { + bool InDomain(rocksdb::Slice const& key) const override { // 8-byte objectID + n-byte string + 1-byte '\0' + ... TRI_ASSERT(key.size() >= sizeof(char) + sizeof(uint64_t)); return key.data()[key.size() - 1] != '\0'; } - bool InRange(rocksdb::Slice const& dst) const { + bool InRange(rocksdb::Slice const& dst) const override { TRI_ASSERT(dst.size() >= sizeof(char) + sizeof(uint64_t)); return dst.data()[dst.size() - 1] != '\0'; } - bool SameResultWhenAppended(rocksdb::Slice const& prefix) const { + bool SameResultWhenAppended(rocksdb::Slice const& prefix) const override { return prefix.data()[prefix.size() - 1] == '\0'; } diff --git a/arangod/RocksDBEngine/RocksDBReplicationTailing.cpp b/arangod/RocksDBEngine/RocksDBReplicationTailing.cpp index ca67bb86fe..68aabe13a4 100644 --- a/arangod/RocksDBEngine/RocksDBReplicationTailing.cpp +++ b/arangod/RocksDBEngine/RocksDBReplicationTailing.cpp @@ -89,7 +89,7 @@ TRI_replication_operation_e rocksutils::convertLogType(RocksDBLogType t) { } /// WAL parser -class WALParser : public rocksdb::WriteBatch::Handler { +class WALParser final : public rocksdb::WriteBatch::Handler { // internal WAL parser states enum State : char { INVALID = 0, diff --git a/arangod/RocksDBEngine/RocksDBWalAccess.h b/arangod/RocksDBEngine/RocksDBWalAccess.h index a792084007..3f479733c1 100644 --- a/arangod/RocksDBEngine/RocksDBWalAccess.h +++ b/arangod/RocksDBEngine/RocksDBWalAccess.h @@ -30,7 +30,7 @@ namespace arangodb { /// @brief StorageEngine agnostic wal access interface. /// TODO: add methods for _admin/wal/ and get rid of engine specific handlers -class RocksDBWalAccess : public WalAccess { +class RocksDBWalAccess final : public WalAccess { public: RocksDBWalAccess() {} virtual ~RocksDBWalAccess() {} diff --git a/arangod/Scheduler/JobQueue.cpp b/arangod/Scheduler/JobQueue.cpp index 97d0d3ede9..c312b95358 100644 --- a/arangod/Scheduler/JobQueue.cpp +++ b/arangod/Scheduler/JobQueue.cpp @@ -40,13 +40,13 @@ class JobQueueThread final ~JobQueueThread() { shutdown(); } - void beginShutdown() { + void beginShutdown() override { Thread::beginShutdown(); _jobQueue->wakeup(); } public: - void run() { + void run() override { int idleTries = 0; auto self = shared_from_this(); diff --git a/arangod/Scheduler/Scheduler.cpp b/arangod/Scheduler/Scheduler.cpp index d5203136ff..195e5823f2 100644 --- a/arangod/Scheduler/Scheduler.cpp +++ b/arangod/Scheduler/Scheduler.cpp @@ -54,7 +54,7 @@ constexpr double MIN_SECONDS = 30.0; // ----------------------------------------------------------------------------- namespace { -class SchedulerManagerThread : public Thread { +class SchedulerManagerThread final : public Thread { public: SchedulerManagerThread(Scheduler* scheduler, boost::asio::io_service* service) : Thread("SchedulerManager", true), _scheduler(scheduler), _service(service) {} @@ -62,7 +62,7 @@ class SchedulerManagerThread : public Thread { ~SchedulerManagerThread() { shutdown(); } public: - void run() { + void run() override { while (!_scheduler->isStopping()) { try { _service->run_one(); @@ -92,7 +92,7 @@ class SchedulerThread : public Thread { ~SchedulerThread() { shutdown(); } public: - void run() { + void run() override { constexpr size_t EVERY_LOOP = size_t(MIN_SECONDS); // when we enter this method, diff --git a/arangod/VocBase/LogicalView.h b/arangod/VocBase/LogicalView.h index c052774e36..865d7f03c3 100644 --- a/arangod/VocBase/LogicalView.h +++ b/arangod/VocBase/LogicalView.h @@ -80,7 +80,7 @@ class LogicalView : public LogicalDataSource { ////////////////////////////////////////////////////////////////////////////// /// @brief drop an existing view ////////////////////////////////////////////////////////////////////////////// - virtual arangodb::Result drop() = 0; + virtual arangodb::Result drop() override = 0; ////////////////////////////////////////////////////////////////////////////// /// @brief renames an existing view @@ -88,7 +88,7 @@ class LogicalView : public LogicalDataSource { virtual Result rename( std::string&& newName, bool doSync - ) = 0; + ) override = 0; ////////////////////////////////////////////////////////////////////////////// /// @brief builds a VelocyPack representation of the node LogicalView @@ -192,4 +192,4 @@ class DBServerLogicalView : public LogicalView { } // namespace arangodb -#endif \ No newline at end of file +#endif diff --git a/arangosh/Import/AutoTuneThread.h b/arangosh/Import/AutoTuneThread.h index 87b0db025e..c0384c57ef 100644 --- a/arangosh/Import/AutoTuneThread.h +++ b/arangosh/Import/AutoTuneThread.h @@ -33,7 +33,7 @@ namespace import { class ImportHelper; -class AutoTuneThread : public arangodb::Thread { +class AutoTuneThread final : public arangodb::Thread { private: AutoTuneThread(AutoTuneThread const&) = delete; AutoTuneThread& operator=(AutoTuneThread const&) = delete; diff --git a/arangosh/Import/SenderThread.h b/arangosh/Import/SenderThread.h index 33b53f84eb..17301d127a 100644 --- a/arangosh/Import/SenderThread.h +++ b/arangosh/Import/SenderThread.h @@ -40,7 +40,7 @@ class SimpleHttpResult; namespace import { struct ImportStatistics; -class SenderThread : public arangodb::Thread { +class SenderThread final : public arangodb::Thread { private: SenderThread(SenderThread const&) = delete; SenderThread& operator=(SenderThread const&) = delete; diff --git a/lib/Basics/AssocMultiHelpers.h b/lib/Basics/AssocMultiHelpers.h index 600c11f203..ca0c19c22a 100644 --- a/lib/Basics/AssocMultiHelpers.h +++ b/lib/Basics/AssocMultiHelpers.h @@ -75,7 +75,7 @@ struct Entry { }; template -class MultiInserterTask : public LocalTask { +class MultiInserterTask final : public LocalTask { private: typedef Entry EntryType; typedef arangodb::basics::IndexBucket Bucket; @@ -109,7 +109,7 @@ class MultiInserterTask : public LocalTask { _userData(userData), _allBuckets(allBuckets) {} - void run() { + void run() override { // sort first so we have a deterministic insertion order std::sort((*_allBuckets)[_i].begin(), (*_allBuckets)[_i].end(), [](DocumentsPerBucket const& lhs, @@ -145,7 +145,7 @@ class MultiInserterTask : public LocalTask { }; template -class MultiPartitionerTask : public LocalTask { +class MultiPartitionerTask final : public LocalTask { private: typedef MultiInserterTask Inserter; typedef std::vector> DocumentsPerBucket; @@ -191,7 +191,7 @@ class MultiPartitionerTask : public LocalTask { _inserters(inserters), _bucketsMask(_allBuckets->size() - 1) {} - void run() { + void run() override { try { std::vector partitions; partitions.resize( diff --git a/lib/Basics/AssocUniqueHelpers.h b/lib/Basics/AssocUniqueHelpers.h index 781846c4f3..1fe2978522 100644 --- a/lib/Basics/AssocUniqueHelpers.h +++ b/lib/Basics/AssocUniqueHelpers.h @@ -53,7 +53,7 @@ struct BucketPosition { }; template -class UniqueInserterTask : public LocalTask { +class UniqueInserterTask final : public LocalTask { private: typedef arangodb::basics::IndexBucket Bucket; typedef std::vector> DocumentsPerBucket; @@ -85,7 +85,7 @@ class UniqueInserterTask : public LocalTask { _userData(userData), _allBuckets(allBuckets) {} - void run() { + void run() override { // actually insert them try { Bucket& b = (*_buckets)[static_cast(_i)]; @@ -117,7 +117,7 @@ class UniqueInserterTask : public LocalTask { }; template -class UniquePartitionerTask : public LocalTask { +class UniquePartitionerTask final : public LocalTask { private: typedef UniqueInserterTask Inserter; typedef std::vector> DocumentsPerBucket; @@ -163,7 +163,7 @@ class UniquePartitionerTask : public LocalTask { _inserters(inserters), _bucketsMask(_allBuckets->size() - 1) {} - void run() { + void run() override { try { std::vector partitions; partitions.resize( diff --git a/lib/Basics/Exceptions.h b/lib/Basics/Exceptions.h index 89069e10ef..03e989680b 100644 --- a/lib/Basics/Exceptions.h +++ b/lib/Basics/Exceptions.h @@ -70,7 +70,7 @@ namespace arangodb { namespace basics { /// @brief arango exception type -class Exception : public virtual std::exception { +class Exception final : public virtual std::exception { public: static std::string FillExceptionString(int, ...); static std::string FillFormatExceptionString(char const* format, ...); diff --git a/lib/Logger/LogAppenderFile.h b/lib/Logger/LogAppenderFile.h index e6e790fbcb..08f96368b4 100644 --- a/lib/Logger/LogAppenderFile.h +++ b/lib/Logger/LogAppenderFile.h @@ -98,13 +98,13 @@ class LogAppenderStdStream : public LogAppenderStream { void writeLogMessage(LogLevel, char const*, size_t) override final; }; -class LogAppenderStderr : public LogAppenderStdStream { +class LogAppenderStderr final : public LogAppenderStdStream { public: explicit LogAppenderStderr(std::string const& filter) : LogAppenderStdStream("+", filter, STDERR_FILENO) {} }; -class LogAppenderStdout : public LogAppenderStdStream { +class LogAppenderStdout final : public LogAppenderStdStream { public: explicit LogAppenderStdout(std::string const& filter) : LogAppenderStdStream("-", filter, STDOUT_FILENO) {} diff --git a/lib/Logger/LogAppenderSyslog.h b/lib/Logger/LogAppenderSyslog.h index 6bbbc540ff..9b5a2c780d 100644 --- a/lib/Logger/LogAppenderSyslog.h +++ b/lib/Logger/LogAppenderSyslog.h @@ -29,7 +29,7 @@ namespace arangodb { #ifdef ARANGODB_ENABLE_SYSLOG -class LogAppenderSyslog : public LogAppender { +class LogAppenderSyslog final : public LogAppender { public: static void close(); diff --git a/lib/Rest/VstResponse.h b/lib/Rest/VstResponse.h index d8f1f34321..3fc52317d7 100644 --- a/lib/Rest/VstResponse.h +++ b/lib/Rest/VstResponse.h @@ -56,7 +56,7 @@ class VstResponse : public GeneralResponse { VPackMessageNoOwnBuffer prepareForNetwork(); - void reset(ResponseCode code) final; + void reset(ResponseCode code) override final; void addPayload(VPackSlice const&, arangodb::velocypack::Options const* = nullptr, bool resolveExternals = true) override; diff --git a/tests/IResearch/ExpressionContextMock.h b/tests/IResearch/ExpressionContextMock.h index a74b12ed10..9b5e403f01 100644 --- a/tests/IResearch/ExpressionContextMock.h +++ b/tests/IResearch/ExpressionContextMock.h @@ -41,18 +41,18 @@ struct ExpressionContextMock final : arangodb::aql::ExpressionContext { virtual ~ExpressionContextMock(); - virtual size_t numRegisters() const{ + virtual size_t numRegisters() const override { TRI_ASSERT(false); return 0; } - virtual arangodb::aql::AqlValue const& getRegisterValue(size_t) const { + virtual arangodb::aql::AqlValue const& getRegisterValue(size_t) const override { TRI_ASSERT(false); static arangodb::aql::AqlValue EMPTY; return EMPTY; } - virtual arangodb::aql::Variable const* getVariable(size_t i) const { + virtual arangodb::aql::Variable const* getVariable(size_t i) const override { TRI_ASSERT(false); return nullptr; } @@ -61,7 +61,7 @@ struct ExpressionContextMock final : arangodb::aql::ExpressionContext { arangodb::aql::Variable const* variable, bool doCopy, bool& mustDestroy - ) const; + ) const override; std::unordered_map vars; }; // ExpressionContextMock diff --git a/tests/IResearch/ExpressionFilter-test.cpp b/tests/IResearch/ExpressionFilter-test.cpp index 5895bd984b..58f00d7443 100644 --- a/tests/IResearch/ExpressionFilter-test.cpp +++ b/tests/IResearch/ExpressionFilter-test.cpp @@ -215,7 +215,7 @@ struct custom_sort: public irs::sort { DECLARE_FACTORY_DEFAULT(); custom_sort(): sort(custom_sort::type()) {} - virtual prepared::ptr prepare() const { + virtual prepared::ptr prepare() const override { return custom_sort::prepared::make(*this); } }; diff --git a/tests/IResearch/StorageEngineMock.cpp b/tests/IResearch/StorageEngineMock.cpp index 56e10bf891..bb93078d16 100644 --- a/tests/IResearch/StorageEngineMock.cpp +++ b/tests/IResearch/StorageEngineMock.cpp @@ -411,18 +411,18 @@ class IndexMock final : public arangodb::Index { IndexMock() : arangodb::Index(0, nullptr, std::vector>(), false, false) { } - virtual char const* typeName() const { return "IndexMock"; } - virtual bool allowExpansion() const { return false; } - virtual IndexType type() const { return TRI_IDX_TYPE_UNKNOWN; } - virtual bool canBeDropped() const { return true; } - virtual bool isSorted() const { return true; } - virtual bool hasSelectivityEstimate() const { return false; } - virtual size_t memory() const { return 0; } + virtual char const* typeName() const override { return "IndexMock"; } + virtual bool allowExpansion() const override { return false; } + virtual IndexType type() const override { return TRI_IDX_TYPE_UNKNOWN; } + virtual bool canBeDropped() const override { return true; } + virtual bool isSorted() const override { return true; } + virtual bool hasSelectivityEstimate() const override { return false; } + virtual size_t memory() const override { return 0; } virtual arangodb::Result insert( arangodb::transaction::Methods*, arangodb::LocalDocumentId const&, arangodb::velocypack::Slice const&, - OperationMode mode) { + OperationMode mode) override { TRI_ASSERT(false); return arangodb::Result(); } @@ -430,12 +430,12 @@ class IndexMock final : public arangodb::Index { arangodb::transaction::Methods*, arangodb::LocalDocumentId const&, arangodb::velocypack::Slice const&, - OperationMode mode) { + OperationMode mode) override { TRI_ASSERT(false); return arangodb::Result(); } - virtual void load() {} - virtual void unload() {} + virtual void load() override {} + virtual void unload() override {} } EMPTY_INDEX; class ReverseAllIteratorMock final : public arangodb::IndexIterator {