diff --git a/include/grpcpp/impl/codegen/client_callback.h b/include/grpcpp/impl/codegen/client_callback.h index 3522fc9ded4..f6bd6108af4 100644 --- a/include/grpcpp/impl/codegen/client_callback.h +++ b/include/grpcpp/impl/codegen/client_callback.h @@ -110,6 +110,8 @@ class CallbackUnaryCallImpl { // Base class for public API classes. class ClientReactor { public: + virtual ~ClientReactor() = default; + /// Called by the library when all operations associated with this RPC have /// completed and all Holds have been removed. OnDone provides the RPC status /// outcome for both successful and failed RPCs. If it is never called on an @@ -224,8 +226,6 @@ class ClientCallbackUnary { template class ClientBidiReactor : public internal::ClientReactor { public: - virtual ~ClientBidiReactor() {} - /// Activate the RPC and initiate any reads or writes that have been Start'ed /// before this call. All streaming RPCs issued by the client MUST have /// StartCall invoked on them (even if they are canceled) as this call is the @@ -362,8 +362,6 @@ class ClientBidiReactor : public internal::ClientReactor { template class ClientReadReactor : public internal::ClientReactor { public: - virtual ~ClientReadReactor() {} - void StartCall() { reader_->StartCall(); } void StartRead(Response* resp) { reader_->Read(resp); } @@ -389,8 +387,6 @@ class ClientReadReactor : public internal::ClientReactor { template class ClientWriteReactor : public internal::ClientReactor { public: - virtual ~ClientWriteReactor() {} - void StartCall() { writer_->StartCall(); } void StartWrite(const Request* req) { StartWrite(req, ::grpc::WriteOptions()); @@ -435,8 +431,6 @@ class ClientWriteReactor : public internal::ClientReactor { /// initiation API among all the reactor flavors. class ClientUnaryReactor : public internal::ClientReactor { public: - virtual ~ClientUnaryReactor() {} - void StartCall() { call_->StartCall(); } void OnDone(const ::grpc::Status& /*s*/) override {} virtual void OnReadInitialMetadataDone(bool /*ok*/) {}