Commit e70058f4 authored by Victor Gao's avatar Victor Gao Committed by Facebook Github Bot

apply clang-tidy modernize-use-override

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