apply clang-tidy modernize-use-override
authorVictor Gao <vgao@fb.com>
Wed, 24 May 2017 18:03:04 +0000 (11:03 -0700)
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>
Wed, 24 May 2017 18:05:26 +0000 (11:05 -0700)
Summary:
This is generated by applying clang-tidy -checks=modernize-use-override to all .cpp files under folly.
It enforces the use of the keywords virtual, override and final in a way compliant to the style guide.

Reviewed By: yfeldblum

Differential Revision: D5108973

fbshipit-source-id: 61c55aa372feebe3b3be12a2705a04879aae57a4

46 files changed:
folly/IPAddressException.h
folly/LifoSem.h
folly/Singleton.h
folly/Subprocess.h
folly/dynamic-inl.h
folly/experimental/hazptr/memory_resource.h
folly/experimental/hazptr/test/HazptrUse1.h
folly/experimental/hazptr/test/HazptrUse2.h
folly/experimental/symbolizer/Symbolizer.h
folly/fibers/EventBaseLoopController.h
folly/fibers/FiberManagerInternal.h
folly/futures/DrivableExecutor.h
folly/futures/ManualExecutor.h
folly/futures/ScheduledExecutor.h
folly/gen/Base-inl.h
folly/io/Compression.cpp
folly/io/IOBuf.h
folly/io/async/AsyncPipe.h
folly/io/async/AsyncSSLSocket.h
folly/io/async/AsyncServerSocket.h
folly/io/async/AsyncSocket.h
folly/io/async/AsyncTimeout.h
folly/io/async/AsyncTransport.h
folly/io/async/AsyncUDPServerSocket.h
folly/io/async/AsyncUDPSocket.h
folly/io/async/DecoratedAsyncTransportWrapper.h
folly/io/async/DelayedDestruction.h
folly/io/async/EventBase.h
folly/io/async/EventBaseLocal.h
folly/io/async/HHWheelTimer.h
folly/io/async/NotificationQueue.h
folly/io/async/VirtualEventBase.h
folly/io/async/WriteChainAsyncTransportWrapper.h
folly/io/async/test/AsyncSSLSocketTest.cpp
folly/io/async/test/AsyncSSLSocketTest.h
folly/io/async/test/AsyncSocketTest.h
folly/io/async/test/AsyncSocketTest2.h
folly/io/async/test/DelayedDestructionTest.cpp
folly/io/async/test/NotificationQueueTest.cpp
folly/io/async/test/RequestContextTest.cpp
folly/io/async/test/TestSSLServer.h
folly/io/async/test/UndelayedDestruction.h
folly/io/async/test/WriteChainAsyncTransportWrapperTest.cpp
folly/test/SingletonTest.cpp
folly/test/SmallLocksBenchmark.cpp
folly/test/SubprocessTest.cpp

index c2ca1ad..86f8a5a 100644 (file)
@@ -37,8 +37,8 @@ class IPAddressFormatException : public std::exception {
       default;
   IPAddressFormatException& operator=(IPAddressFormatException&&) = default;
 
-  virtual ~IPAddressFormatException() noexcept {}
-  virtual const char *what(void) const noexcept {
+  ~IPAddressFormatException() noexcept override {}
+  const char* what(void) const noexcept override {
     return msg_.c_str();
   }
 
index d66f77e..f6b7bf0 100644 (file)
@@ -91,7 +91,7 @@ typedef LifoSemImpl<> LifoSem;
 /// The exception thrown when wait()ing on an isShutdown() LifoSem
 struct ShutdownSemError : public std::runtime_error {
   explicit ShutdownSemError(const std::string& msg);
-  virtual ~ShutdownSemError() noexcept;
+  ~ShutdownSemError() noexcept override;
 };
 
 namespace detail {
index e8344ce..104054a 100644 (file)
@@ -273,11 +273,11 @@ struct SingletonHolder : public SingletonHolderBase {
 
   void registerSingleton(CreateFunc c, TeardownFunc t);
   void registerSingletonMock(CreateFunc c, TeardownFunc t);
-  virtual bool hasLiveInstance() override;
-  virtual void createInstance() override;
-  virtual bool creationStarted() override;
-  virtual void preDestroyInstance(ReadMostlyMainPtrDeleter<>&) override;
-  virtual void destroyInstance() override;
+  bool hasLiveInstance() override;
+  void createInstance() override;
+  bool creationStarted() override;
+  void preDestroyInstance(ReadMostlyMainPtrDeleter<>&) override;
+  void destroyInstance() override;
 
  private:
   SingletonHolder(TypeDescriptor type, SingletonVault& vault);
index 01e6d2c..f1dd2ec 100644 (file)
@@ -217,7 +217,7 @@ class SubprocessError : public std::exception {};
 class CalledProcessError : public SubprocessError {
  public:
   explicit CalledProcessError(ProcessReturnCode rc);
-  ~CalledProcessError() throw() = default;
+  ~CalledProcessError() throw() override = default;
   const char* what() const throw() override { return what_.c_str(); }
   ProcessReturnCode returnCode() const { return returnCode_; }
  private:
@@ -231,7 +231,7 @@ class CalledProcessError : public SubprocessError {
 class SubprocessSpawnError : public SubprocessError {
  public:
   SubprocessSpawnError(const char* executable, int errCode, int errnoValue);
-  ~SubprocessSpawnError() throw() = default;
+  ~SubprocessSpawnError() throw() override = default;
   const char* what() const throw() override { return what_.c_str(); }
   int errnoValue() const { return errnoValue_; }
 
index fe65cbb..48666de 100644 (file)
@@ -78,7 +78,7 @@ struct TypeError : std::runtime_error {
   explicit TypeError(const std::string& expected, dynamic::Type actual);
   explicit TypeError(const std::string& expected,
     dynamic::Type actual1, dynamic::Type actual2);
-  ~TypeError();
+  ~TypeError() override;
 };
 
 
index 33994dd..952c839 100644 (file)
@@ -69,7 +69,7 @@ inline memory_resource* new_delete_resource() {
    public:
     void* allocate(
         const size_t bytes,
-        const size_t alignment = alignof(std::max_align_t)) {
+        const size_t alignment = alignof(std::max_align_t)) override {
       (void)alignment;
       void* p = static_cast<void*>(new char[bytes]);
       DEBUG_PRINT(this << " " << p << " " << bytes);
@@ -78,7 +78,7 @@ inline memory_resource* new_delete_resource() {
     void deallocate(
         void* p,
         const size_t bytes,
-        const size_t alignment = alignof(std::max_align_t)) {
+        const size_t alignment = alignof(std::max_align_t)) override {
       (void)alignment;
       (void)bytes;
       DEBUG_PRINT(p << " " << bytes);
index 4ca53b5..614225c 100644 (file)
@@ -23,13 +23,13 @@ namespace hazptr {
 
 class MyMemoryResource : public memory_resource {
  public:
-  void* allocate(const size_t sz, const size_t /* align */) {
+  void* allocate(const size_t sz, const size_t /* align */) override {
     void* p = malloc(sz);
     DEBUG_PRINT(p << " " << sz);
     return p;
   }
 
-  void deallocate(void* p, const size_t sz, const size_t /* align */) {
+  void deallocate(void* p, const size_t sz, const size_t /* align */) override {
     DEBUG_PRINT(p << " " << sz);
     free(p);
   }
index e3a1124..b8dc58e 100644 (file)
@@ -23,13 +23,13 @@ namespace hazptr {
 
 class MineMemoryResource : public memory_resource {
  public:
-  void* allocate(const size_t sz, const size_t /* align */) {
+  void* allocate(const size_t sz, const size_t /* align */) override {
     void* p = malloc(sz);
     DEBUG_PRINT(p << " " << sz);
     return p;
   }
 
-  void deallocate(void* p, const size_t sz, const size_t /* align */) {
+  void deallocate(void* p, const size_t sz, const size_t /* align */) override {
     DEBUG_PRINT(p << " " << sz);
     free(p);
   }
index 677e0a8..772b11d 100644 (file)
@@ -269,7 +269,7 @@ class FDSymbolizePrinter : public SymbolizePrinter {
  public:
   explicit FDSymbolizePrinter(int fd, int options=0,
                               size_t bufferSize=0);
-  ~FDSymbolizePrinter();
+  ~FDSymbolizePrinter() override;
   void flush();
  private:
   void doPrint(StringPiece sp) override;
index a8a8276..329997d 100644 (file)
@@ -27,7 +27,7 @@ namespace fibers {
 class EventBaseLoopController : public LoopController {
  public:
   explicit EventBaseLoopController();
-  ~EventBaseLoopController();
+  ~EventBaseLoopController() override;
 
   /**
    * Attach EventBase after LoopController was created.
@@ -60,7 +60,7 @@ class EventBaseLoopController : public LoopController {
   class DestructionCallback : public folly::EventBase::LoopCallback {
    public:
     DestructionCallback() : alive_(new int(42)) {}
-    ~DestructionCallback() {
+    ~DestructionCallback() override {
       reset();
     }
 
index 7428d01..f944789 100644 (file)
@@ -146,7 +146,7 @@ class FiberManager : public ::folly::Executor {
       std::unique_ptr<LoopController> loopController,
       Options options = Options());
 
-  ~FiberManager();
+  ~FiberManager() override;
 
   /**
    * Controller access.
index a33d2d6..49b3c5d 100644 (file)
@@ -39,7 +39,7 @@ namespace folly {
 
 class DrivableExecutor : public virtual Executor {
  public:
-  virtual ~DrivableExecutor() = default;
+  ~DrivableExecutor() override = default;
 
   // Make progress on this Executor's work.
   //
index d4fb8db..76847e2 100644 (file)
@@ -73,7 +73,7 @@ namespace folly {
 
     }
 
-    virtual void scheduleAt(Func&& f, TimePoint const& t) override {
+    void scheduleAt(Func&& f, TimePoint const& t) override {
       std::lock_guard<std::mutex> lock(lock_);
       scheduledFuncs_.emplace(t, std::move(f));
       sem_.post();
index df10254..99cb2b7 100644 (file)
@@ -30,9 +30,9 @@ namespace folly {
      typedef std::chrono::microseconds Duration;
      typedef std::chrono::steady_clock::time_point TimePoint;
 
-     virtual ~ScheduledExecutor() = default;
+     ~ScheduledExecutor() override = default;
 
-     virtual void add(Func) override = 0;
+     void add(Func) override = 0;
 
      /// Alias for add() (for Rx consistency)
      void schedule(Func&& a) { add(std::move(a)); }
index 45873e8..2245bf0 100644 (file)
@@ -2233,15 +2233,15 @@ class VirtualGen : public GenImpl<Value, VirtualGen<Value>> {
    public:
     explicit WrapperImpl(Wrapped wrapped) : wrapped_(std::move(wrapped)) {}
 
-    virtual bool apply(const std::function<bool(Value)>& handler) const {
+    bool apply(const std::function<bool(Value)>& handler) const override {
       return wrapped_.apply(handler);
     }
 
-    virtual void foreach(const std::function<void(Value)>& body) const {
+    void foreach(const std::function<void(Value)>& body) const override {
       wrapped_.foreach(body);
     }
 
-    virtual std::unique_ptr<const WrapperBase> clone() const {
+    std::unique_ptr<const WrapperBase> clone() const override {
       return std::unique_ptr<const WrapperBase>(new WrapperImpl(wrapped_));
     }
   };
index ba94103..4c02802 100644 (file)
@@ -445,7 +445,7 @@ class LZ4FrameCodec final : public Codec {
  public:
   static std::unique_ptr<Codec> create(int level, CodecType type);
   explicit LZ4FrameCodec(int level, CodecType type);
-  ~LZ4FrameCodec();
+  ~LZ4FrameCodec() override;
 
   std::vector<std::string> validPrefixes() const override;
   bool canUncompress(const IOBuf* data, Optional<uint64_t> uncompressedLength)
index 15f8839..2286709 100644 (file)
@@ -1396,7 +1396,7 @@ class IOBuf {
     typedef typename UniquePtr::deleter_type Deleter;
 
     explicit UniquePtrDeleter(Deleter deleter) : deleter_(std::move(deleter)){ }
-    void dispose(void* p) {
+    void dispose(void* p) override {
       try {
         deleter_(static_cast<Pointer>(p));
         delete this;
index 1b5d0de..7a4ece3 100644 (file)
@@ -77,7 +77,7 @@ class AsyncPipeReader : public EventHandler,
   }
 
  private:
-  ~AsyncPipeReader();
+  ~AsyncPipeReader() override;
 
   void handlerReady(uint16_t events) noexcept override;
   void failRead(const AsyncSocketException& ex);
@@ -173,7 +173,7 @@ class AsyncPipeWriter : public EventHandler,
   bool closeOnEmpty_{false};
   std::function<void(int)> closeCb_;
 
-  ~AsyncPipeWriter() {
+  ~AsyncPipeWriter() override {
     closeNow();
   }
 };
index accd120..516e07c 100644 (file)
@@ -141,7 +141,7 @@ class AsyncSSLSocket : public virtual AsyncSocket {
       return timeout_;
     }
 
-    virtual void timeoutExpired() noexcept override {
+    void timeoutExpired() noexcept override {
       sslSocket_->timeoutExpired(timeout_);
     }
 
@@ -275,18 +275,20 @@ class AsyncSSLSocket : public virtual AsyncSocket {
   // See the documentation in TAsyncTransport.h
   // TODO: implement graceful shutdown in close()
   // TODO: implement detachSSL() that returns the SSL connection
-  virtual void closeNow() override;
-  virtual void shutdownWrite() override;
-  virtual void shutdownWriteNow() override;
-  virtual bool good() const override;
-  virtual bool connecting() const override;
-  virtual std::string getApplicationProtocol() noexcept override;
-
-  virtual std::string getSecurityProtocol() const override { return "TLS"; }
-
-  virtual void setEorTracking(bool track) override;
-  virtual size_t getRawBytesWritten() const override;
-  virtual size_t getRawBytesReceived() const override;
+  void closeNow() override;
+  void shutdownWrite() override;
+  void shutdownWriteNow() override;
+  bool good() const override;
+  bool connecting() const override;
+  std::string getApplicationProtocol() noexcept override;
+
+  std::string getSecurityProtocol() const override {
+    return "TLS";
+  }
+
+  void setEorTracking(bool track) override;
+  size_t getRawBytesWritten() const override;
+  size_t getRawBytesReceived() const override;
   void enableClientHelloParsing();
 
   /**
@@ -513,21 +515,21 @@ class AsyncSSLSocket : public virtual AsyncSocket {
   /**
    * Get the certificate used for this SSL connection. May be null
    */
-  virtual const X509* getSelfCert() const override;
+  const X509* getSelfCert() const override;
 
-  virtual void attachEventBase(EventBase* eventBase) override {
+  void attachEventBase(EventBase* eventBase) override {
     AsyncSocket::attachEventBase(eventBase);
     handshakeTimeout_.attachEventBase(eventBase);
     connectionTimeout_.attachEventBase(eventBase);
   }
 
-  virtual void detachEventBase() override {
+  void detachEventBase() override {
     AsyncSocket::detachEventBase();
     handshakeTimeout_.detachEventBase();
     connectionTimeout_.detachEventBase();
   }
 
-  virtual bool isDetachable() const override {
+  bool isDetachable() const override {
     return AsyncSocket::isDetachable() && !handshakeTimeout_.isScheduled();
   }
 
@@ -675,7 +677,7 @@ class AsyncSSLSocket : public virtual AsyncSocket {
   /**
    * Returns the peer certificate, or nullptr if no peer certificate received.
    */
-  virtual ssl::X509UniquePtr getPeerCert() const override {
+  ssl::X509UniquePtr getPeerCert() const override {
     if (!ssl_) {
       return nullptr;
     }
@@ -734,7 +736,7 @@ class AsyncSSLSocket : public virtual AsyncSocket {
    * destroy() instead.  (See the documentation in DelayedDestruction.h for
    * more details.)
    */
-  ~AsyncSSLSocket();
+  ~AsyncSSLSocket() override;
 
   // Inherit event notification methods from AsyncSocket except
   // the following.
@@ -749,7 +751,7 @@ class AsyncSSLSocket : public virtual AsyncSocket {
                  int* sslErrorOut,
                  unsigned long* errErrorOut) noexcept;
 
-  virtual void checkForImmediateRead() noexcept override;
+  void checkForImmediateRead() noexcept override;
   // AsyncSocket calls this at the wrong time for SSL
   void handleInitialReadWrite() noexcept override {}
 
index 63ca06e..ff2f539 100644 (file)
@@ -246,7 +246,7 @@ class AsyncServerSocket : public DelayedDestruction
    * time after destroy() returns.  They will not receive any more callback
    * invocations once acceptStopped() is invoked.
    */
-  virtual void destroy();
+  void destroy() override;
 
   /**
    * Attach this AsyncServerSocket to its primary EventBase.
@@ -268,7 +268,7 @@ class AsyncServerSocket : public DelayedDestruction
   /**
    * Get the EventBase used by this socket.
    */
-  EventBase* getEventBase() const {
+  EventBase* getEventBase() const override {
     return eventBase_;
   }
 
@@ -353,7 +353,7 @@ class AsyncServerSocket : public DelayedDestruction
    *
    * Throws TTransportException on error.
    */
-  void getAddress(SocketAddress* addressReturn) const;
+  void getAddress(SocketAddress* addressReturn) const override;
 
   /**
    * Get the local address to which the socket is bound.
@@ -717,7 +717,7 @@ class AsyncServerSocket : public DelayedDestruction
    *
    * Invoke destroy() instead to destroy the AsyncServerSocket.
    */
-  virtual ~AsyncServerSocket();
+  ~AsyncServerSocket() override;
 
  private:
   enum class MessageType {
@@ -750,12 +750,12 @@ class AsyncServerSocket : public DelayedDestruction
       : callback_(callback),
         connectionEventCallback_(connectionEventCallback) {}
 
-    ~RemoteAcceptor() = default;
+    ~RemoteAcceptor() override = default;
 
     void start(EventBase *eventBase, uint32_t maxAtOnce, uint32_t maxInQueue);
     void stop(EventBase* eventBase, AcceptCallback* callback);
 
-    virtual void messageAvailable(QueueMessage&& message) noexcept override;
+    void messageAvailable(QueueMessage&& message) noexcept override;
 
     NotificationQueue<QueueMessage>* getQueue() {
       return &queue_;
@@ -841,7 +841,7 @@ class AsyncServerSocket : public DelayedDestruction
     }
 
     // Inherited from EventHandler
-    virtual void handlerReady(uint16_t events) noexcept {
+    void handlerReady(uint16_t events) noexcept override {
       parent_->handlerReady(events, socket_, addressFamily_);
     }
 
index d4ddf0b..1bf1b4d 100644 (file)
@@ -320,7 +320,7 @@ class AsyncSocket : virtual public AsyncTransportWrapper {
    * This prevents callers from deleting a AsyncSocket while it is invoking a
    * callback.
    */
-  virtual void destroy() override;
+  void destroy() override;
 
   /**
    * Get the EventBase used by this socket.
@@ -886,7 +886,7 @@ class AsyncSocket : virtual public AsyncTransportWrapper {
    * destroy() instead.  (See the documentation in DelayedDestruction.h for
    * more details.)
    */
-  ~AsyncSocket();
+  ~AsyncSocket() override;
 
   friend std::ostream& operator << (std::ostream& os, const StateEnum& state);
 
@@ -919,7 +919,7 @@ class AsyncSocket : virtual public AsyncTransportWrapper {
       : AsyncTimeout(eventBase)
       , socket_(socket) {}
 
-    virtual void timeoutExpired() noexcept {
+    void timeoutExpired() noexcept override {
       socket_->timeoutExpired();
     }
 
@@ -936,7 +936,7 @@ class AsyncSocket : virtual public AsyncTransportWrapper {
       : EventHandler(eventBase, fd)
       , socket_(socket) {}
 
-    virtual void handlerReady(uint16_t events) noexcept {
+    void handlerReady(uint16_t events) noexcept override {
       socket_->ioReady(events);
     }
 
index 21e7a29..2f626d8 100644 (file)
@@ -248,7 +248,7 @@ struct async_timeout_wrapper:
     callback_(std::forward<UCallback>(callback))
   {}
 
-  void timeoutExpired() noexcept {
+  void timeoutExpired() noexcept override {
     static_assert(
       noexcept(std::declval<TCallback>()()),
       "callback must be declared noexcept, e.g.: `[]() noexcept {}`"
index 3d023c4..7af32f2 100644 (file)
@@ -345,7 +345,7 @@ class AsyncTransport : public DelayedDestruction, public AsyncSocketBase {
     return addr;
   }
 
-  virtual void getAddress(SocketAddress* address) const {
+  void getAddress(SocketAddress* address) const override {
     getLocalAddress(address);
   }
 
@@ -438,7 +438,7 @@ class AsyncTransport : public DelayedDestruction, public AsyncSocketBase {
   }
 
  protected:
-  virtual ~AsyncTransport() = default;
+  ~AsyncTransport() override = default;
 };
 
 class AsyncReader {
@@ -630,15 +630,22 @@ class AsyncTransportWrapper : virtual public AsyncTransport,
   // to keep compatibility.
   using ReadCallback    = AsyncReader::ReadCallback;
   using WriteCallback   = AsyncWriter::WriteCallback;
-  virtual void setReadCB(ReadCallback* callback) override = 0;
-  virtual ReadCallback* getReadCallback() const override = 0;
-  virtual void write(WriteCallback* callback, const void* buf, size_t bytes,
-                     WriteFlags flags = WriteFlags::NONE) override = 0;
-  virtual void writev(WriteCallback* callback, const iovec* vec, size_t count,
-                      WriteFlags flags = WriteFlags::NONE) override = 0;
-  virtual void writeChain(WriteCallback* callback,
-                          std::unique_ptr<IOBuf>&& buf,
-                          WriteFlags flags = WriteFlags::NONE) override = 0;
+  void setReadCB(ReadCallback* callback) override = 0;
+  ReadCallback* getReadCallback() const override = 0;
+  void write(
+      WriteCallback* callback,
+      const void* buf,
+      size_t bytes,
+      WriteFlags flags = WriteFlags::NONE) override = 0;
+  void writev(
+      WriteCallback* callback,
+      const iovec* vec,
+      size_t count,
+      WriteFlags flags = WriteFlags::NONE) override = 0;
+  void writeChain(
+      WriteCallback* callback,
+      std::unique_ptr<IOBuf>&& buf,
+      WriteFlags flags = WriteFlags::NONE) override = 0;
   /**
    * The transport wrapper may wrap another transport. This returns the
    * transport that is wrapped. It returns nullptr if there is no wrapped
index 651eb1c..8658658 100644 (file)
@@ -77,7 +77,7 @@ class AsyncUDPServerSocket : private AsyncUDPSocket::ReadCallback
         nextListener_(0) {
   }
 
-  ~AsyncUDPServerSocket() {
+  ~AsyncUDPServerSocket() override {
     if (socket_) {
       close();
     }
@@ -100,7 +100,7 @@ class AsyncUDPServerSocket : private AsyncUDPSocket::ReadCallback
     return socket_->address();
   }
 
-  void getAddress(SocketAddress* a) const {
+  void getAddress(SocketAddress* a) const override {
     *a = address();
   }
 
@@ -136,19 +136,20 @@ class AsyncUDPServerSocket : private AsyncUDPSocket::ReadCallback
     socket_.reset();
   }
 
-  EventBase* getEventBase() const {
+  EventBase* getEventBase() const override {
     return evb_;
   }
 
  private:
   // AsyncUDPSocket::ReadCallback
-  void getReadBuffer(void** buf, size_t* len) noexcept {
+  void getReadBuffer(void** buf, size_t* len) noexcept override {
     std::tie(*buf, *len) = buf_.preallocate(packetSize_, packetSize_);
   }
 
-  void onDataAvailable(const folly::SocketAddress& clientAddress,
-                       size_t len,
-                       bool truncated) noexcept {
+  void onDataAvailable(
+      const folly::SocketAddress& clientAddress,
+      size_t len,
+      bool truncated) noexcept override {
     buf_.postallocate(len);
     auto data = buf_.split(len);
 
@@ -182,14 +183,14 @@ class AsyncUDPServerSocket : private AsyncUDPSocket::ReadCallback
     ++nextListener_;
   }
 
-  void onReadError(const AsyncSocketException& ex) noexcept {
+  void onReadError(const AsyncSocketException& ex) noexcept override {
     LOG(ERROR) << ex.what();
 
     // Lets register to continue listening for packets
     socket_->resumeRead(this);
   }
 
-  void onReadClosed() noexcept {
+  void onReadClosed() noexcept override {
     for (auto& listener: listeners_) {
       auto callback = listener.second;
 
index 62a295d..4a5a738 100644 (file)
@@ -82,7 +82,7 @@ class AsyncUDPSocket : public EventHandler {
    * given eventbase
    */
   explicit AsyncUDPSocket(EventBase* evb);
-  ~AsyncUDPSocket();
+  ~AsyncUDPSocket() override;
 
   /**
    * Returns the address server is listening on
@@ -163,7 +163,7 @@ class AsyncUDPSocket : public EventHandler {
   AsyncUDPSocket& operator=(const AsyncUDPSocket&) = delete;
 
   // EventHandler
-  void handlerReady(uint16_t events) noexcept;
+  void handlerReady(uint16_t events) noexcept override;
 
   void handleRead() noexcept;
   bool updateRegistration() noexcept;
index 20baf7b..06dc419 100644 (file)
@@ -34,16 +34,16 @@ class DecoratedAsyncTransportWrapper : public folly::AsyncTransportWrapper {
   }
 
   // folly::AsyncTransportWrapper
-  virtual ReadCallback* getReadCallback() const override {
+  ReadCallback* getReadCallback() const override {
     return transport_->getReadCallback();
   }
 
-  virtual void setReadCB(
+  void setReadCB(
       folly::AsyncTransportWrapper::ReadCallback* callback) override {
     transport_->setReadCB(callback);
   }
 
-  virtual void write(
+  void write(
       folly::AsyncTransportWrapper::WriteCallback* callback,
       const void* buf,
       size_t bytes,
@@ -51,14 +51,14 @@ class DecoratedAsyncTransportWrapper : public folly::AsyncTransportWrapper {
     transport_->write(callback, buf, bytes, flags);
   }
 
-  virtual void writeChain(
+  void writeChain(
       folly::AsyncTransportWrapper::WriteCallback* callback,
       std::unique_ptr<folly::IOBuf>&& buf,
       folly::WriteFlags flags = folly::WriteFlags::NONE) override {
     transport_->writeChain(callback, std::move(buf), flags);
   }
 
-  virtual void writev(
+  void writev(
       folly::AsyncTransportWrapper::WriteCallback* callback,
       const iovec* vec,
       size_t bytes,
@@ -67,24 +67,24 @@ class DecoratedAsyncTransportWrapper : public folly::AsyncTransportWrapper {
   }
 
   // folly::AsyncSocketBase
-  virtual folly::EventBase* getEventBase() const override {
+  folly::EventBase* getEventBase() const override {
     return transport_->getEventBase();
   }
 
   // folly::AsyncTransport
-  virtual void attachEventBase(folly::EventBase* eventBase) override {
+  void attachEventBase(folly::EventBase* eventBase) override {
     transport_->attachEventBase(eventBase);
   }
 
-  virtual void close() override {
+  void close() override {
     transport_->close();
   }
 
-  virtual void closeNow() override {
+  void closeNow() override {
     transport_->closeNow();
   }
 
-  virtual void closeWithReset() override {
+  void closeWithReset() override {
     transport_->closeWithReset();
 
     // This will likely result in 2 closeNow() calls on the decorated transport,
@@ -92,105 +92,105 @@ class DecoratedAsyncTransportWrapper : public folly::AsyncTransportWrapper {
     closeNow();
   }
 
-  virtual bool connecting() const override {
+  bool connecting() const override {
     return transport_->connecting();
   }
 
-  virtual void detachEventBase() override {
+  void detachEventBase() override {
     transport_->detachEventBase();
   }
 
-  virtual bool error() const override {
+  bool error() const override {
     return transport_->error();
   }
 
-  virtual size_t getAppBytesReceived() const override {
+  size_t getAppBytesReceived() const override {
     return transport_->getAppBytesReceived();
   }
 
-  virtual size_t getAppBytesWritten() const override {
+  size_t getAppBytesWritten() const override {
     return transport_->getAppBytesWritten();
   }
 
-  virtual void getLocalAddress(folly::SocketAddress* address) const override {
+  void getLocalAddress(folly::SocketAddress* address) const override {
     return transport_->getLocalAddress(address);
   }
 
-  virtual void getPeerAddress(folly::SocketAddress* address) const override {
+  void getPeerAddress(folly::SocketAddress* address) const override {
     return transport_->getPeerAddress(address);
   }
 
-  virtual folly::ssl::X509UniquePtr getPeerCert() const override {
+  folly::ssl::X509UniquePtr getPeerCert() const override {
     return transport_->getPeerCert();
   }
 
-  virtual size_t getRawBytesReceived() const override {
+  size_t getRawBytesReceived() const override {
     return transport_->getRawBytesReceived();
   }
 
-  virtual size_t getRawBytesWritten() const override {
+  size_t getRawBytesWritten() const override {
     return transport_->getRawBytesWritten();
   }
 
-  virtual uint32_t getSendTimeout() const override {
+  uint32_t getSendTimeout() const override {
     return transport_->getSendTimeout();
   }
 
-  virtual bool good() const override {
+  bool good() const override {
     return transport_->good();
   }
 
-  virtual bool isDetachable() const override {
+  bool isDetachable() const override {
     return transport_->isDetachable();
   }
 
-  virtual bool isEorTrackingEnabled() const override {
+  bool isEorTrackingEnabled() const override {
     return transport_->isEorTrackingEnabled();
   }
 
-  virtual bool readable() const override {
+  bool readable() const override {
     return transport_->readable();
   }
 
-  virtual bool writable() const override {
+  bool writable() const override {
     return transport_->writable();
   }
 
-  virtual void setEorTracking(bool track) override {
+  void setEorTracking(bool track) override {
     return transport_->setEorTracking(track);
   }
 
-  virtual void setSendTimeout(uint32_t timeoutInMs) override {
+  void setSendTimeout(uint32_t timeoutInMs) override {
     transport_->setSendTimeout(timeoutInMs);
   }
 
-  virtual void shutdownWrite() override {
+  void shutdownWrite() override {
     transport_->shutdownWrite();
   }
 
-  virtual void shutdownWriteNow() override {
+  void shutdownWriteNow() override {
     transport_->shutdownWriteNow();
   }
 
-  virtual std::string getApplicationProtocol() noexcept override {
+  std::string getApplicationProtocol() noexcept override {
     return transport_->getApplicationProtocol();
   }
 
-  virtual std::string getSecurityProtocol() const override {
+  std::string getSecurityProtocol() const override {
     return transport_->getSecurityProtocol();
   }
 
-  virtual bool isReplaySafe() const override {
+  bool isReplaySafe() const override {
     return transport_->isReplaySafe();
   }
 
-  virtual void setReplaySafetyCallback(
+  void setReplaySafetyCallback(
       folly::AsyncTransport::ReplaySafetyCallback* callback) override {
     transport_->setReplaySafetyCallback(callback);
   }
 
  protected:
-  virtual ~DecoratedAsyncTransportWrapper() {}
+  ~DecoratedAsyncTransportWrapper() override {}
 
   typename T::UniquePtr transport_;
 };
index cb00899..c46b8ff 100644 (file)
@@ -94,7 +94,7 @@ class DelayedDestruction : public DelayedDestructionBase {
    * shared_ptr using a DelayedDestruction::Destructor as the second argument
    * to the shared_ptr constructor.
    */
-  virtual ~DelayedDestruction() = default;
+  ~DelayedDestruction() override = default;
 
   DelayedDestruction()
     : destroyPending_(false) {
index 487af05..81fda80 100644 (file)
@@ -221,7 +221,7 @@ class EventBase : private boost::noncopyable,
    *                              observer, max latency and avg loop time.
    */
   explicit EventBase(event_base* evb, bool enableTimeMeasurement = true);
-  ~EventBase();
+  ~EventBase() override;
 
   /**
    * Runs the event loop.
@@ -515,7 +515,7 @@ class EventBase : private boost::noncopyable,
    * first handler fired within that cycle.
    *
    */
-  void bumpHandlingTime() override final;
+  void bumpHandlingTime() final;
 
   class SmoothLoopTime {
    public:
@@ -617,16 +617,16 @@ class EventBase : private boost::noncopyable,
   // TimeoutManager
   void attachTimeoutManager(
       AsyncTimeout* obj,
-      TimeoutManager::InternalEnum internal) override final;
+      TimeoutManager::InternalEnum internal) final;
 
-  void detachTimeoutManager(AsyncTimeout* obj) override final;
+  void detachTimeoutManager(AsyncTimeout* obj) final;
 
   bool scheduleTimeout(AsyncTimeout* obj, TimeoutManager::timeout_type timeout)
-      override final;
+      final;
 
-  void cancelTimeout(AsyncTimeout* obj) override final;
+  void cancelTimeout(AsyncTimeout* obj) final;
 
-  bool isInTimeoutManagerThread() override final {
+  bool isInTimeoutManagerThread() final {
     return isInEventBaseThread();
   }
 
index 5b627f0..b7d106a 100644 (file)
@@ -31,7 +31,7 @@ namespace detail {
 class EventBaseLocalBase : public EventBaseLocalBaseBase, boost::noncopyable {
  public:
   EventBaseLocalBase() {}
-  virtual ~EventBaseLocalBase();
+  ~EventBaseLocalBase() override;
   void erase(EventBase& evb);
   void onEventBaseDestruction(EventBase& evb) override;
 
index 844ff90..89cf1f1 100644 (file)
@@ -254,7 +254,7 @@ class HHWheelTimer : private folly::AsyncTimeout,
    * Use destroy() instead.  See the comments in DelayedDestruction for more
    * details.
    */
-  virtual ~HHWheelTimer();
+  ~HHWheelTimer() override;
 
  private:
   // Forbidden copy constructor and assignment operator
@@ -262,7 +262,7 @@ class HHWheelTimer : private folly::AsyncTimeout,
   HHWheelTimer& operator=(HHWheelTimer const &) = delete;
 
   // Methods inherited from AsyncTimeout
-  virtual void timeoutExpired() noexcept;
+  void timeoutExpired() noexcept override;
 
   std::chrono::milliseconds interval_;
   std::chrono::milliseconds defaultTimeout_;
index 3018a5d..3b7d56d 100644 (file)
@@ -172,7 +172,7 @@ class NotificationQueue {
 
     void destroy() override;
 
-    virtual ~Consumer() {}
+    ~Consumer() override {}
 
    private:
     /**
index 4719fde..d02fd0e 100644 (file)
@@ -43,7 +43,7 @@ class VirtualEventBase : public folly::Executor, public folly::TimeoutManager {
   VirtualEventBase(const VirtualEventBase&) = delete;
   VirtualEventBase& operator=(const VirtualEventBase&) = delete;
 
-  ~VirtualEventBase();
+  ~VirtualEventBase() override;
 
   EventBase& getEventBase() {
     return evb_;
index cd147a4..db08daa 100644 (file)
@@ -30,7 +30,7 @@ class WriteChainAsyncTransportWrapper :
  public:
   using DecoratedAsyncTransportWrapper<T>::DecoratedAsyncTransportWrapper;
 
-  virtual void write(
+  void write(
       folly::AsyncTransportWrapper::WriteCallback* callback,
       const void* buf,
       size_t bytes,
@@ -39,7 +39,7 @@ class WriteChainAsyncTransportWrapper :
     writeChain(callback, std::move(ioBuf), flags);
   }
 
-  virtual void writev(
+  void writev(
       folly::AsyncTransportWrapper::WriteCallback* callback,
       const iovec* vec,
       size_t count,
@@ -65,7 +65,7 @@ class WriteChainAsyncTransportWrapper :
    * It only makes sense to use this class if you override writeChain, so force
    * derived classes to do that.
    */
-  virtual void writeChain(
+  void writeChain(
       folly::AsyncTransportWrapper::WriteCallback* callback,
       std::unique_ptr<folly::IOBuf>&& buf,
       folly::WriteFlags flags = folly::WriteFlags::NONE) override = 0;
index 3874f57..36a6802 100644 (file)
@@ -1779,11 +1779,11 @@ TEST(AsyncSSLSocketTest, ConnectWriteReadCloseTFOWithTFOServerDisabled) {
 
 class ConnCallback : public AsyncSocket::ConnectCallback {
  public:
-  virtual void connectSuccess() noexcept override {
+  void connectSuccess() noexcept override {
     state = State::SUCCESS;
   }
 
-  virtual void connectErr(const AsyncSocketException& ex) noexcept override {
+  void connectErr(const AsyncSocketException& ex) noexcept override {
     state = State::ERROR;
     error = ex.what();
   }
index e4a73c1..d2acbf4 100644 (file)
@@ -133,7 +133,7 @@ public:
       , exception(AsyncSocketException::UNKNOWN, "none")
       , mcb_(mcb) {}
 
-  ~WriteCallbackBase() {
+  ~WriteCallbackBase() override {
     EXPECT_EQ(STATE_SUCCEEDED, state);
   }
 
@@ -145,7 +145,7 @@ public:
     }
   }
 
-  virtual void writeSuccess() noexcept override {
+  void writeSuccess() noexcept override {
     std::cerr << "writeSuccess" << std::endl;
     state = STATE_SUCCEEDED;
   }
@@ -175,7 +175,7 @@ public:
   explicit ExpectWriteErrorCallback(SendMsgParamsCallbackBase* mcb = nullptr)
       : WriteCallbackBase(mcb) {}
 
-  ~ExpectWriteErrorCallback() {
+  ~ExpectWriteErrorCallback() override {
     EXPECT_EQ(STATE_FAILED, state);
     EXPECT_EQ(exception.type_,
              AsyncSocketException::AsyncSocketExceptionType::NETWORK_ERROR);
@@ -203,7 +203,7 @@ public:
   explicit WriteCheckTimestampCallback(SendMsgParamsCallbackBase* mcb = nullptr)
     : WriteCallbackBase(mcb) {}
 
-  ~WriteCheckTimestampCallback() {
+  ~WriteCheckTimestampCallback() override {
     EXPECT_EQ(STATE_SUCCEEDED, state);
     EXPECT_TRUE(gotTimestamp_);
     EXPECT_TRUE(gotByteSeq_);
@@ -283,7 +283,7 @@ public AsyncTransportWrapper::ReadCallback {
   explicit ReadCallbackBase(WriteCallbackBase* wcb)
       : wcb_(wcb), state(STATE_WAITING) {}
 
-  ~ReadCallbackBase() {
+  ~ReadCallbackBase() override {
     EXPECT_EQ(STATE_SUCCEEDED, state);
   }
 
@@ -323,7 +323,7 @@ public:
       : ReadCallbackBase(wcb)
       , buffers() {}
 
-  ~ReadCallback() {
+  ~ReadCallback() override {
     for (std::vector<Buffer>::iterator it = buffers.begin();
          it != buffers.end();
          ++it) {
@@ -539,7 +539,7 @@ public:
     cv_.wait(lock, [this] { return state != STATE_WAITING; });
   }
 
-  ~HandshakeCallback() {
+  ~HandshakeCallback() override {
     EXPECT_EQ(STATE_SUCCEEDED, state);
   }
 
@@ -570,7 +570,7 @@ public:
       SSLServerAcceptCallbackBase(hcb),
       timeout_(timeout) {}
 
-  virtual ~SSLServerAcceptCallback() {
+  ~SSLServerAcceptCallback() override {
     if (timeout_ > 0) {
       // if we set a timeout, we expect failure
       EXPECT_EQ(hcb_->state, STATE_FAILED);
@@ -1038,7 +1038,7 @@ class RenegotiatingServer : public AsyncSSLSocket::HandshakeCB,
     socket_->sslAccept(this);
   }
 
-  ~RenegotiatingServer() {
+  ~RenegotiatingServer() override {
     socket_->setReadCB(nullptr);
   }
 
@@ -1216,7 +1216,7 @@ class SSLClient : public AsyncSocket::ConnectCallback,
     memset(buf_, 'a', sizeof(buf_));
   }
 
-  ~SSLClient() {
+  ~SSLClient() override {
     if (session_) {
       SSL_SESSION_free(session_);
     }
index f6abde8..b84251f 100644 (file)
@@ -96,7 +96,7 @@ class ReadCallback : public folly::AsyncTransportWrapper::ReadCallback {
         buffers(),
         maxBufferSz(_maxBufferSz) {}
 
-  ~ReadCallback() {
+  ~ReadCallback() override {
     for (std::vector<Buffer>::iterator it = buffers.begin();
          it != buffers.end();
          ++it) {
index dacb8e5..407552a 100644 (file)
@@ -34,50 +34,50 @@ namespace test {
 class TestConnectionEventCallback
     : public AsyncServerSocket::ConnectionEventCallback {
  public:
-  virtual void onConnectionAccepted(
+  void onConnectionAccepted(
       const int /* socket */,
       const SocketAddress& /* addr */) noexcept override {
     folly::RWSpinLock::WriteHolder holder(spinLock_);
     connectionAccepted_++;
   }
 
-  virtual void onConnectionAcceptError(const int /* err */) noexcept override {
+  void onConnectionAcceptError(const int /* err */) noexcept override {
     folly::RWSpinLock::WriteHolder holder(spinLock_);
     connectionAcceptedError_++;
   }
 
-  virtual void onConnectionDropped(
+  void onConnectionDropped(
       const int /* socket */,
       const SocketAddress& /* addr */) noexcept override {
     folly::RWSpinLock::WriteHolder holder(spinLock_);
     connectionDropped_++;
   }
 
-  virtual void onConnectionEnqueuedForAcceptorCallback(
+  void onConnectionEnqueuedForAcceptorCallback(
       const int /* socket */,
       const SocketAddress& /* addr */) noexcept override {
     folly::RWSpinLock::WriteHolder holder(spinLock_);
     connectionEnqueuedForAcceptCallback_++;
   }
 
-  virtual void onConnectionDequeuedByAcceptorCallback(
+  void onConnectionDequeuedByAcceptorCallback(
       const int /* socket */,
       const SocketAddress& /* addr */) noexcept override {
     folly::RWSpinLock::WriteHolder holder(spinLock_);
     connectionDequeuedByAcceptCallback_++;
   }
 
-  virtual void onBackoffStarted() noexcept override {
+  void onBackoffStarted() noexcept override {
     folly::RWSpinLock::WriteHolder holder(spinLock_);
     backoffStarted_++;
   }
 
-  virtual void onBackoffEnded() noexcept override {
+  void onBackoffEnded() noexcept override {
     folly::RWSpinLock::WriteHolder holder(spinLock_);
     backoffEnded_++;
   }
 
-  virtual void onBackoffError() noexcept override {
+  void onBackoffError() noexcept override {
     folly::RWSpinLock::WriteHolder holder(spinLock_);
     backoffError_++;
   }
index 1f0c959..7f05f5b 100644 (file)
@@ -20,8 +20,7 @@
 using namespace folly;
 
 class DeleteGuarder : public DelayedDestruction {
-
-  ~DeleteGuarder() {
+  ~DeleteGuarder() override {
     doFoo();
   }
 
index 7e5d982..614f230 100644 (file)
@@ -369,7 +369,7 @@ void QueueTest::destroyCallback() {
 
     std::function<void(int)> *fn;
    protected:
-    virtual ~DestroyTestConsumer() = default;
+    ~DestroyTestConsumer() override = default;
   };
 
   EventBase eventBase;
index 2ec6bfe..750ff7f 100644 (file)
@@ -131,7 +131,7 @@ TEST(RequestContext, deadlockTest) {
    public:
     explicit DeadlockTestData(const std::string& val) : val_(val) {}
 
-    virtual ~DeadlockTestData() {
+    ~DeadlockTestData() override {
       RequestContext::get()->setContextData(
           val_, std::make_unique<TestData>(1));
     }
index cc83a4b..a25bbb8 100644 (file)
@@ -47,7 +47,7 @@ class SSLServerAcceptCallbackBase : public AsyncServerSocket::AcceptCallback {
   explicit SSLServerAcceptCallbackBase(HandshakeCallback* hcb)
       : state(STATE_WAITING), hcb_(hcb) {}
 
-  ~SSLServerAcceptCallbackBase() {
+  ~SSLServerAcceptCallbackBase() override {
     EXPECT_EQ(STATE_SUCCEEDED, state);
   }
 
index 28a7a85..055fffe 100644 (file)
@@ -69,7 +69,7 @@ class UndelayedDestruction : public TDD {
    * the object directly from the event loop (e.g., directly from a
    * EventBase::LoopCallback), or when the event loop is stopped.
    */
-  virtual ~UndelayedDestruction() {
+  ~UndelayedDestruction() override {
     // Crash if the caller is destroying us with outstanding destructor guards.
     if (this->getDestructorGuardCount() != 0) {
       abort();
index 7c1b803..10cf02c 100644 (file)
@@ -44,8 +44,7 @@ class TestWriteChainAsyncTransportWrapper :
   }
 
   // Allow this to be constructed on the stack for easier testing.
-  virtual ~TestWriteChainAsyncTransportWrapper() {
-  }
+  ~TestWriteChainAsyncTransportWrapper() override {}
 };
 
 MATCHER_P(BufMatches, expected, "") {
index 7ed6f10..be95ea4 100644 (file)
@@ -499,7 +499,7 @@ class TestEagerInitParallelExecutor : public folly::Executor {
     }
   }
 
-  virtual ~TestEagerInitParallelExecutor() override {
+  ~TestEagerInitParallelExecutor() override {
     for (auto eb : eventBases_) {
       eb->runInEventBaseThread([eb] { eb->terminateLoopSoon(); });
     }
@@ -508,7 +508,7 @@ class TestEagerInitParallelExecutor : public folly::Executor {
     }
   }
 
-  virtual void add(folly::Func func) override {
+  void add(folly::Func func) override {
     const auto index = (counter_ ++) % eventBases_.size();
     eventBases_[index]->add(std::move(func));
   }
index 28ecaee..8a1d6a3 100644 (file)
@@ -274,7 +274,7 @@ struct VirtualBase {
 struct VirtualImpl : VirtualBase {
   void foo() override { /* noop */
   }
-  virtual ~VirtualImpl() {}
+  ~VirtualImpl() override {}
 };
 
 #ifndef __clang__
index 74a822e..7065695 100644 (file)
@@ -281,7 +281,7 @@ struct WriteFileAfterFork
     : public Subprocess::DangerousPostForkPreExecCallback {
   explicit WriteFileAfterFork(std::string filename)
     : filename_(std::move(filename)) {}
-  virtual ~WriteFileAfterFork() {}
+  ~WriteFileAfterFork() override {}
   int operator()() override {
     return writeFile(std::string("ok"), filename_.c_str()) ? 0 : errno;
   }