Make it possible to compile with gcc4.6
diff --git a/include/grpc++/async_unary_call.h b/include/grpc++/async_unary_call.h
index b4a654c..ccd0806 100644
--- a/include/grpc++/async_unary_call.h
+++ b/include/grpc++/async_unary_call.h
@@ -45,7 +45,7 @@
namespace grpc {
template <class R>
-class ClientAsyncResponseReader final {
+class ClientAsyncResponseReader GRPC_FINAL {
public:
ClientAsyncResponseReader(ChannelInterface* channel, CompletionQueue* cq,
const RpcMethod& method, ClientContext* context,
@@ -79,7 +79,7 @@
private:
- ClientContext* context_ = nullptr;
+ ClientContext* context_;
Call call_;
CallOpBuffer init_buf_;
CallOpBuffer meta_buf_;
@@ -87,7 +87,8 @@
};
template <class W>
-class ServerAsyncResponseWriter final : public ServerAsyncStreamingInterface {
+class ServerAsyncResponseWriter GRPC_FINAL
+ : public ServerAsyncStreamingInterface {
public:
explicit ServerAsyncResponseWriter(ServerContext* ctx)
: call_(nullptr, nullptr, nullptr), ctx_(ctx) {}
@@ -127,7 +128,7 @@
}
private:
- void BindCall(Call* call) override { call_ = *call; }
+ void BindCall(Call* call) GRPC_OVERRIDE { call_ = *call; }
Call call_;
ServerContext* ctx_;
diff --git a/include/grpc++/client_context.h b/include/grpc++/client_context.h
index 1e7e6bf..c5a213e 100644
--- a/include/grpc++/client_context.h
+++ b/include/grpc++/client_context.h
@@ -139,7 +139,7 @@
return authority_;
}
- bool initial_metadata_received_ = false;
+ bool initial_metadata_received_;
grpc_call *call_;
grpc_completion_queue *cq_;
gpr_timespec absolute_deadline_;
diff --git a/include/grpc++/config.h b/include/grpc++/config.h
index 2dced12..323ea28 100644
--- a/include/grpc++/config.h
+++ b/include/grpc++/config.h
@@ -36,6 +36,14 @@
#include <string>
+#ifdef GRPC_OLD_CXX
+#define GRPC_FINAL
+#define GRPC_OVERRIDE
+#else
+#define GRPC_FINAL final
+#define GRPC_OVERRIDE override
+#endif
+
namespace grpc {
typedef std::string string;
diff --git a/include/grpc++/credentials.h b/include/grpc++/credentials.h
index 5cbcca3..b75755d 100644
--- a/include/grpc++/credentials.h
+++ b/include/grpc++/credentials.h
@@ -47,7 +47,7 @@
// to creating an instance using CredentialsFactory, and passing it down
// during channel construction.
-class Credentials final {
+class Credentials GRPC_FINAL {
public:
~Credentials();
diff --git a/include/grpc++/impl/call.h b/include/grpc++/impl/call.h
index 341710f..92ad0c7 100644
--- a/include/grpc++/impl/call.h
+++ b/include/grpc++/impl/call.h
@@ -35,6 +35,7 @@
#define __GRPCPP_CALL_H__
#include <grpc/grpc.h>
+#include <grpc++/config.h>
#include <grpc++/status.h>
#include <grpc++/completion_queue.h>
@@ -56,7 +57,7 @@
class CallOpBuffer : public CompletionQueueTag {
public:
- CallOpBuffer() : return_tag_(this) {}
+ CallOpBuffer();
~CallOpBuffer();
void Reset(void *next_return_tag);
@@ -80,40 +81,40 @@
void FillOps(grpc_op *ops, size_t *nops);
// Called by completion queue just prior to returning from Next() or Pluck()
- bool FinalizeResult(void **tag, bool *status) override;
+ bool FinalizeResult(void **tag, bool *status) GRPC_OVERRIDE;
- bool got_message = false;
+ bool got_message;
private:
- void *return_tag_ = nullptr;
+ void *return_tag_;
// Send initial metadata
- bool send_initial_metadata_ = false;
- size_t initial_metadata_count_ = 0;
- grpc_metadata *initial_metadata_ = nullptr;
+ bool send_initial_metadata_;
+ size_t initial_metadata_count_;
+ grpc_metadata *initial_metadata_;
// Recv initial metadta
- std::multimap<grpc::string, grpc::string> *recv_initial_metadata_ = nullptr;
- grpc_metadata_array recv_initial_metadata_arr_ = {0, 0, nullptr};
+ std::multimap<grpc::string, grpc::string> *recv_initial_metadata_;
+ grpc_metadata_array recv_initial_metadata_arr_;
// Send message
- const google::protobuf::Message *send_message_ = nullptr;
- grpc_byte_buffer *send_message_buf_ = nullptr;
+ const google::protobuf::Message *send_message_;
+ grpc_byte_buffer *send_message_buf_;
// Recv message
- google::protobuf::Message *recv_message_ = nullptr;
- grpc_byte_buffer *recv_message_buf_ = nullptr;
+ google::protobuf::Message *recv_message_;
+ grpc_byte_buffer *recv_message_buf_;
// Client send close
- bool client_send_close_ = false;
+ bool client_send_close_;
// Client recv status
- std::multimap<grpc::string, grpc::string> *recv_trailing_metadata_ = nullptr;
- Status *recv_status_ = nullptr;
- grpc_metadata_array recv_trailing_metadata_arr_ = {0, 0, nullptr};
- grpc_status_code status_code_ = GRPC_STATUS_OK;
- char *status_details_ = nullptr;
- size_t status_details_capacity_ = 0;
+ std::multimap<grpc::string, grpc::string> *recv_trailing_metadata_;
+ Status *recv_status_;
+ grpc_metadata_array recv_trailing_metadata_arr_;
+ grpc_status_code status_code_;
+ char *status_details_;
+ size_t status_details_capacity_;
// Server send status
- const Status *send_status_ = nullptr;
- size_t trailing_metadata_count_ = 0;
- grpc_metadata *trailing_metadata_ = nullptr;
+ const Status *send_status_;
+ size_t trailing_metadata_count_;
+ grpc_metadata *trailing_metadata_;
int cancelled_buf_;
- bool *recv_closed_ = nullptr;
+ bool *recv_closed_;
};
// Channel and Server implement this to allow them to hook performing ops
@@ -124,7 +125,7 @@
};
// Straightforward wrapping of the C call object
-class Call final {
+class Call GRPC_FINAL {
public:
/* call is owned by the caller */
Call(grpc_call *call, CallHook *call_hook_, CompletionQueue *cq);
diff --git a/include/grpc++/impl/rpc_service_method.h b/include/grpc++/impl/rpc_service_method.h
index ffd5c34..a8794bc 100644
--- a/include/grpc++/impl/rpc_service_method.h
+++ b/include/grpc++/impl/rpc_service_method.h
@@ -77,7 +77,7 @@
ServiceType* service)
: func_(func), service_(service) {}
- Status RunHandler(const HandlerParameter& param) final {
+ Status RunHandler(const HandlerParameter& param) GRPC_FINAL {
// Invoke application function, cast proto messages to their actual types.
return func_(service_, param.server_context,
dynamic_cast<const RequestType*>(param.request),
@@ -102,7 +102,7 @@
ServiceType* service)
: func_(func), service_(service) {}
- Status RunHandler(const HandlerParameter& param) final {
+ Status RunHandler(const HandlerParameter& param) GRPC_FINAL {
ServerReader<RequestType> reader(param.call, param.server_context);
return func_(service_, param.server_context, &reader,
dynamic_cast<ResponseType*>(param.response));
@@ -124,7 +124,7 @@
ServiceType* service)
: func_(func), service_(service) {}
- Status RunHandler(const HandlerParameter& param) final {
+ Status RunHandler(const HandlerParameter& param) GRPC_FINAL {
ServerWriter<ResponseType> writer(param.call, param.server_context);
return func_(service_, param.server_context,
dynamic_cast<const RequestType*>(param.request), &writer);
@@ -147,7 +147,7 @@
ServiceType* service)
: func_(func), service_(service) {}
- Status RunHandler(const HandlerParameter& param) final {
+ Status RunHandler(const HandlerParameter& param) GRPC_FINAL {
ServerReaderWriter<ResponseType, RequestType> stream(param.call,
param.server_context);
return func_(service_, param.server_context, &stream);
diff --git a/include/grpc++/impl/service_type.h b/include/grpc++/impl/service_type.h
index cafa269..e54c3c2 100644
--- a/include/grpc++/impl/service_type.h
+++ b/include/grpc++/impl/service_type.h
@@ -79,7 +79,11 @@
AsynchronousService(CompletionQueue* cq, const char** method_names,
size_t method_count)
- : cq_(cq), method_names_(method_names), method_count_(method_count) {}
+ : cq_(cq),
+ dispatch_impl_(nullptr),
+ method_names_(method_names),
+ method_count_(method_count),
+ request_args_(nullptr) {}
~AsynchronousService() { delete[] request_args_; }
@@ -116,10 +120,10 @@
private:
friend class Server;
CompletionQueue* const cq_;
- DispatchImpl* dispatch_impl_ = nullptr;
+ DispatchImpl* dispatch_impl_;
const char** const method_names_;
size_t method_count_;
- void** request_args_ = nullptr;
+ void** request_args_;
};
} // namespace grpc
diff --git a/include/grpc++/server.h b/include/grpc++/server.h
index 429c0ff..46c4a62 100644
--- a/include/grpc++/server.h
+++ b/include/grpc++/server.h
@@ -61,8 +61,8 @@
class ThreadPoolInterface;
// Currently it only supports handling rpcs in a single thread.
-class Server final : private CallHook,
- private AsynchronousService::DispatchImpl {
+class Server GRPC_FINAL : private CallHook,
+ private AsynchronousService::DispatchImpl {
public:
~Server();
@@ -97,7 +97,7 @@
void RunRpc();
void ScheduleCallback();
- void PerformOpsOnCall(CallOpBuffer* ops, Call* call) override;
+ void PerformOpsOnCall(CallOpBuffer* ops, Call* call) GRPC_OVERRIDE;
// DispatchImpl
void RequestAsyncCall(void* registered_method, ServerContext* context,
diff --git a/include/grpc++/server_builder.h b/include/grpc++/server_builder.h
index 4545c41..b672eb3 100644
--- a/include/grpc++/server_builder.h
+++ b/include/grpc++/server_builder.h
@@ -83,7 +83,7 @@
std::vector<AsynchronousService*> async_services_;
std::vector<grpc::string> ports_;
std::shared_ptr<ServerCredentials> creds_;
- ThreadPoolInterface* thread_pool_ = nullptr;
+ ThreadPoolInterface* thread_pool_;
};
} // namespace grpc
diff --git a/include/grpc++/server_context.h b/include/grpc++/server_context.h
index d327d8b..6db767f 100644
--- a/include/grpc++/server_context.h
+++ b/include/grpc++/server_context.h
@@ -66,7 +66,7 @@
class Server;
// Interface of server side rpc context.
-class ServerContext final {
+class ServerContext GRPC_FINAL {
public:
ServerContext(); // for async calls
~ServerContext();
@@ -108,12 +108,12 @@
ServerContext(gpr_timespec deadline, grpc_metadata* metadata,
size_t metadata_count);
- CompletionOp* completion_op_ = nullptr;
+ CompletionOp* completion_op_;
std::chrono::system_clock::time_point deadline_;
- grpc_call* call_ = nullptr;
- CompletionQueue* cq_ = nullptr;
- bool sent_initial_metadata_ = false;
+ grpc_call* call_;
+ CompletionQueue* cq_;
+ bool sent_initial_metadata_;
std::multimap<grpc::string, grpc::string> client_metadata_;
std::multimap<grpc::string, grpc::string> initial_metadata_;
std::multimap<grpc::string, grpc::string> trailing_metadata_;
diff --git a/include/grpc++/server_credentials.h b/include/grpc++/server_credentials.h
index 5c6787a..8af4159 100644
--- a/include/grpc++/server_credentials.h
+++ b/include/grpc++/server_credentials.h
@@ -44,7 +44,7 @@
namespace grpc {
// grpc_server_credentials wrapper class.
-class ServerCredentials final {
+class ServerCredentials GRPC_FINAL {
public:
~ServerCredentials();
diff --git a/include/grpc++/stream.h b/include/grpc++/stream.h
index cd95ff7..8bcc75b 100644
--- a/include/grpc++/stream.h
+++ b/include/grpc++/stream.h
@@ -83,8 +83,8 @@
};
template <class R>
-class ClientReader final : public ClientStreamingInterface,
- public ReaderInterface<R> {
+class ClientReader GRPC_FINAL : public ClientStreamingInterface,
+ public ReaderInterface<R> {
public:
// Blocking create a stream and write the first request out.
ClientReader(ChannelInterface* channel, const RpcMethod& method,
@@ -111,7 +111,7 @@
GPR_ASSERT(cq_.Pluck(&buf));
}
- virtual bool Read(R* msg) override {
+ virtual bool Read(R* msg) GRPC_OVERRIDE {
CallOpBuffer buf;
if (!context_->initial_metadata_received_) {
buf.AddRecvInitialMetadata(context_);
@@ -121,7 +121,7 @@
return cq_.Pluck(&buf) && buf.got_message;
}
- virtual Status Finish() override {
+ virtual Status Finish() GRPC_OVERRIDE {
CallOpBuffer buf;
Status status;
buf.AddClientRecvStatus(context_, &status);
@@ -137,8 +137,8 @@
};
template <class W>
-class ClientWriter final : public ClientStreamingInterface,
- public WriterInterface<W> {
+class ClientWriter GRPC_FINAL : public ClientStreamingInterface,
+ public WriterInterface<W> {
public:
// Blocking create a stream.
ClientWriter(ChannelInterface* channel, const RpcMethod& method,
@@ -152,7 +152,7 @@
cq_.Pluck(&buf);
}
- virtual bool Write(const W& msg) override {
+ virtual bool Write(const W& msg) GRPC_OVERRIDE {
CallOpBuffer buf;
buf.AddSendMessage(msg);
call_.PerformOps(&buf);
@@ -167,7 +167,7 @@
}
// Read the final response and wait for the final status.
- virtual Status Finish() override {
+ virtual Status Finish() GRPC_OVERRIDE {
CallOpBuffer buf;
Status status;
buf.AddRecvMessage(response_);
@@ -186,9 +186,9 @@
// Client-side interface for bi-directional streaming.
template <class W, class R>
-class ClientReaderWriter final : public ClientStreamingInterface,
- public WriterInterface<W>,
- public ReaderInterface<R> {
+class ClientReaderWriter GRPC_FINAL : public ClientStreamingInterface,
+ public WriterInterface<W>,
+ public ReaderInterface<R> {
public:
// Blocking create a stream.
ClientReaderWriter(ChannelInterface* channel, const RpcMethod& method,
@@ -213,7 +213,7 @@
GPR_ASSERT(cq_.Pluck(&buf));
}
- virtual bool Read(R* msg) override {
+ virtual bool Read(R* msg) GRPC_OVERRIDE {
CallOpBuffer buf;
if (!context_->initial_metadata_received_) {
buf.AddRecvInitialMetadata(context_);
@@ -223,7 +223,7 @@
return cq_.Pluck(&buf) && buf.got_message;
}
- virtual bool Write(const W& msg) override {
+ virtual bool Write(const W& msg) GRPC_OVERRIDE {
CallOpBuffer buf;
buf.AddSendMessage(msg);
call_.PerformOps(&buf);
@@ -237,7 +237,7 @@
return cq_.Pluck(&buf);
}
- virtual Status Finish() override {
+ virtual Status Finish() GRPC_OVERRIDE {
CallOpBuffer buf;
Status status;
buf.AddClientRecvStatus(context_, &status);
@@ -253,7 +253,7 @@
};
template <class R>
-class ServerReader final : public ReaderInterface<R> {
+class ServerReader GRPC_FINAL : public ReaderInterface<R> {
public:
ServerReader(Call* call, ServerContext* ctx) : call_(call), ctx_(ctx) {}
@@ -267,7 +267,7 @@
call_->cq()->Pluck(&buf);
}
- virtual bool Read(R* msg) override {
+ virtual bool Read(R* msg) GRPC_OVERRIDE {
CallOpBuffer buf;
buf.AddRecvMessage(msg);
call_->PerformOps(&buf);
@@ -280,7 +280,7 @@
};
template <class W>
-class ServerWriter final : public WriterInterface<W> {
+class ServerWriter GRPC_FINAL : public WriterInterface<W> {
public:
ServerWriter(Call* call, ServerContext* ctx) : call_(call), ctx_(ctx) {}
@@ -294,7 +294,7 @@
call_->cq()->Pluck(&buf);
}
- virtual bool Write(const W& msg) override {
+ virtual bool Write(const W& msg) GRPC_OVERRIDE {
CallOpBuffer buf;
if (!ctx_->sent_initial_metadata_) {
buf.AddSendInitialMetadata(&ctx_->initial_metadata_);
@@ -312,8 +312,8 @@
// Server-side interface for bi-directional streaming.
template <class W, class R>
-class ServerReaderWriter final : public WriterInterface<W>,
- public ReaderInterface<R> {
+class ServerReaderWriter GRPC_FINAL : public WriterInterface<W>,
+ public ReaderInterface<R> {
public:
ServerReaderWriter(Call* call, ServerContext* ctx) : call_(call), ctx_(ctx) {}
@@ -327,14 +327,14 @@
call_->cq()->Pluck(&buf);
}
- virtual bool Read(R* msg) override {
+ virtual bool Read(R* msg) GRPC_OVERRIDE {
CallOpBuffer buf;
buf.AddRecvMessage(msg);
call_->PerformOps(&buf);
return call_->cq()->Pluck(&buf) && buf.got_message;
}
- virtual bool Write(const W& msg) override {
+ virtual bool Write(const W& msg) GRPC_OVERRIDE {
CallOpBuffer buf;
if (!ctx_->sent_initial_metadata_) {
buf.AddSendInitialMetadata(&ctx_->initial_metadata_);
@@ -380,8 +380,8 @@
};
template <class R>
-class ClientAsyncReader final : public ClientAsyncStreamingInterface,
- public AsyncReaderInterface<R> {
+class ClientAsyncReader GRPC_FINAL : public ClientAsyncStreamingInterface,
+ public AsyncReaderInterface<R> {
public:
// Create a stream and write the first request out.
ClientAsyncReader(ChannelInterface* channel, CompletionQueue* cq,
@@ -395,7 +395,7 @@
call_.PerformOps(&init_buf_);
}
- void ReadInitialMetadata(void* tag) override {
+ void ReadInitialMetadata(void* tag) GRPC_OVERRIDE {
GPR_ASSERT(!context_->initial_metadata_received_);
meta_buf_.Reset(tag);
@@ -403,7 +403,7 @@
call_.PerformOps(&meta_buf_);
}
- void Read(R* msg, void* tag) override {
+ void Read(R* msg, void* tag) GRPC_OVERRIDE {
read_buf_.Reset(tag);
if (!context_->initial_metadata_received_) {
read_buf_.AddRecvInitialMetadata(context_);
@@ -412,7 +412,7 @@
call_.PerformOps(&read_buf_);
}
- void Finish(Status* status, void* tag) override {
+ void Finish(Status* status, void* tag) GRPC_OVERRIDE {
finish_buf_.Reset(tag);
if (!context_->initial_metadata_received_) {
finish_buf_.AddRecvInitialMetadata(context_);
@@ -422,7 +422,7 @@
}
private:
- ClientContext* context_ = nullptr;
+ ClientContext* context_;
Call call_;
CallOpBuffer init_buf_;
CallOpBuffer meta_buf_;
@@ -431,8 +431,8 @@
};
template <class W>
-class ClientAsyncWriter final : public ClientAsyncStreamingInterface,
- public AsyncWriterInterface<W> {
+class ClientAsyncWriter GRPC_FINAL : public ClientAsyncStreamingInterface,
+ public AsyncWriterInterface<W> {
public:
ClientAsyncWriter(ChannelInterface* channel, CompletionQueue* cq,
const RpcMethod& method, ClientContext* context,
@@ -445,7 +445,7 @@
call_.PerformOps(&init_buf_);
}
- void ReadInitialMetadata(void* tag) override {
+ void ReadInitialMetadata(void* tag) GRPC_OVERRIDE {
GPR_ASSERT(!context_->initial_metadata_received_);
meta_buf_.Reset(tag);
@@ -453,7 +453,7 @@
call_.PerformOps(&meta_buf_);
}
- void Write(const W& msg, void* tag) override {
+ void Write(const W& msg, void* tag) GRPC_OVERRIDE {
write_buf_.Reset(tag);
write_buf_.AddSendMessage(msg);
call_.PerformOps(&write_buf_);
@@ -465,7 +465,7 @@
call_.PerformOps(&writes_done_buf_);
}
- void Finish(Status* status, void* tag) override {
+ void Finish(Status* status, void* tag) GRPC_OVERRIDE {
finish_buf_.Reset(tag);
if (!context_->initial_metadata_received_) {
finish_buf_.AddRecvInitialMetadata(context_);
@@ -476,7 +476,7 @@
}
private:
- ClientContext* context_ = nullptr;
+ ClientContext* context_;
google::protobuf::Message* const response_;
Call call_;
CallOpBuffer init_buf_;
@@ -488,9 +488,9 @@
// Client-side interface for bi-directional streaming.
template <class W, class R>
-class ClientAsyncReaderWriter final : public ClientAsyncStreamingInterface,
- public AsyncWriterInterface<W>,
- public AsyncReaderInterface<R> {
+class ClientAsyncReaderWriter GRPC_FINAL : public ClientAsyncStreamingInterface,
+ public AsyncWriterInterface<W>,
+ public AsyncReaderInterface<R> {
public:
ClientAsyncReaderWriter(ChannelInterface* channel, CompletionQueue* cq,
const RpcMethod& method, ClientContext* context,
@@ -501,7 +501,7 @@
call_.PerformOps(&init_buf_);
}
- void ReadInitialMetadata(void* tag) override {
+ void ReadInitialMetadata(void* tag) GRPC_OVERRIDE {
GPR_ASSERT(!context_->initial_metadata_received_);
meta_buf_.Reset(tag);
@@ -509,7 +509,7 @@
call_.PerformOps(&meta_buf_);
}
- void Read(R* msg, void* tag) override {
+ void Read(R* msg, void* tag) GRPC_OVERRIDE {
read_buf_.Reset(tag);
if (!context_->initial_metadata_received_) {
read_buf_.AddRecvInitialMetadata(context_);
@@ -518,7 +518,7 @@
call_.PerformOps(&read_buf_);
}
- void Write(const W& msg, void* tag) override {
+ void Write(const W& msg, void* tag) GRPC_OVERRIDE {
write_buf_.Reset(tag);
write_buf_.AddSendMessage(msg);
call_.PerformOps(&write_buf_);
@@ -530,7 +530,7 @@
call_.PerformOps(&writes_done_buf_);
}
- void Finish(Status* status, void* tag) override {
+ void Finish(Status* status, void* tag) GRPC_OVERRIDE {
finish_buf_.Reset(tag);
if (!context_->initial_metadata_received_) {
finish_buf_.AddRecvInitialMetadata(context_);
@@ -540,7 +540,7 @@
}
private:
- ClientContext* context_ = nullptr;
+ ClientContext* context_;
Call call_;
CallOpBuffer init_buf_;
CallOpBuffer meta_buf_;
@@ -551,13 +551,13 @@
};
template <class W, class R>
-class ServerAsyncReader : public ServerAsyncStreamingInterface,
- public AsyncReaderInterface<R> {
+class ServerAsyncReader GRPC_FINAL : public ServerAsyncStreamingInterface,
+ public AsyncReaderInterface<R> {
public:
explicit ServerAsyncReader(ServerContext* ctx)
: call_(nullptr, nullptr, nullptr), ctx_(ctx) {}
- void SendInitialMetadata(void* tag) override {
+ void SendInitialMetadata(void* tag) GRPC_OVERRIDE {
GPR_ASSERT(!ctx_->sent_initial_metadata_);
meta_buf_.Reset(tag);
@@ -566,7 +566,7 @@
call_.PerformOps(&meta_buf_);
}
- void Read(R* msg, void* tag) override {
+ void Read(R* msg, void* tag) GRPC_OVERRIDE {
read_buf_.Reset(tag);
read_buf_.AddRecvMessage(msg);
call_.PerformOps(&read_buf_);
@@ -598,7 +598,7 @@
}
private:
- void BindCall(Call* call) override { call_ = *call; }
+ void BindCall(Call* call) GRPC_OVERRIDE { call_ = *call; }
Call call_;
ServerContext* ctx_;
@@ -608,13 +608,13 @@
};
template <class W>
-class ServerAsyncWriter : public ServerAsyncStreamingInterface,
- public AsyncWriterInterface<W> {
+class ServerAsyncWriter GRPC_FINAL : public ServerAsyncStreamingInterface,
+ public AsyncWriterInterface<W> {
public:
explicit ServerAsyncWriter(ServerContext* ctx)
: call_(nullptr, nullptr, nullptr), ctx_(ctx) {}
- void SendInitialMetadata(void* tag) override {
+ void SendInitialMetadata(void* tag) GRPC_OVERRIDE {
GPR_ASSERT(!ctx_->sent_initial_metadata_);
meta_buf_.Reset(tag);
@@ -623,7 +623,7 @@
call_.PerformOps(&meta_buf_);
}
- void Write(const W& msg, void* tag) override {
+ void Write(const W& msg, void* tag) GRPC_OVERRIDE {
write_buf_.Reset(tag);
if (!ctx_->sent_initial_metadata_) {
write_buf_.AddSendInitialMetadata(&ctx_->initial_metadata_);
@@ -644,7 +644,7 @@
}
private:
- void BindCall(Call* call) override { call_ = *call; }
+ void BindCall(Call* call) GRPC_OVERRIDE { call_ = *call; }
Call call_;
ServerContext* ctx_;
@@ -655,14 +655,14 @@
// Server-side interface for bi-directional streaming.
template <class W, class R>
-class ServerAsyncReaderWriter : public ServerAsyncStreamingInterface,
- public AsyncWriterInterface<W>,
- public AsyncReaderInterface<R> {
+class ServerAsyncReaderWriter GRPC_FINAL : public ServerAsyncStreamingInterface,
+ public AsyncWriterInterface<W>,
+ public AsyncReaderInterface<R> {
public:
explicit ServerAsyncReaderWriter(ServerContext* ctx)
: call_(nullptr, nullptr, nullptr), ctx_(ctx) {}
- void SendInitialMetadata(void* tag) override {
+ void SendInitialMetadata(void* tag) GRPC_OVERRIDE {
GPR_ASSERT(!ctx_->sent_initial_metadata_);
meta_buf_.Reset(tag);
@@ -671,13 +671,13 @@
call_.PerformOps(&meta_buf_);
}
- virtual void Read(R* msg, void* tag) override {
+ virtual void Read(R* msg, void* tag) GRPC_OVERRIDE {
read_buf_.Reset(tag);
read_buf_.AddRecvMessage(msg);
call_.PerformOps(&read_buf_);
}
- virtual void Write(const W& msg, void* tag) override {
+ virtual void Write(const W& msg, void* tag) GRPC_OVERRIDE {
write_buf_.Reset(tag);
if (!ctx_->sent_initial_metadata_) {
write_buf_.AddSendInitialMetadata(&ctx_->initial_metadata_);
@@ -698,7 +698,7 @@
}
private:
- void BindCall(Call* call) override { call_ = *call; }
+ void BindCall(Call* call) GRPC_OVERRIDE { call_ = *call; }
Call call_;
ServerContext* ctx_;