You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@brpc.apache.org by lo...@apache.org on 2022/01/21 03:34:59 UTC
[incubator-brpc] branch master updated: Improvement: brpc support higher version of protobuf
This is an automated email from the ASF dual-hosted git repository.
lorinlee pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-brpc.git
The following commit(s) were added to refs/heads/master by this push:
new 345c9db Improvement: brpc support higher version of protobuf
new dc38fce Merge pull request #1679 from hcoona/private/hcoona/support-higher-version-protobuf
345c9db is described below
commit 345c9dbebd826f4826fcabc45306507c9a2e5ef1
Author: Shuai Zhang <zh...@gmail.com>
AuthorDate: Wed Dec 29 19:00:58 2021 +0800
Improvement: brpc support higher version of protobuf
---
src/brpc/esp_message.cpp | 6 ++++++
src/brpc/esp_message.h | 3 +++
src/brpc/memcache.cpp | 13 +++++++++++++
src/brpc/memcache.h | 6 ++++++
src/brpc/nshead_message.cpp | 6 ++++++
src/brpc/nshead_message.h | 3 +++
src/brpc/protocol.cpp | 4 ++++
src/brpc/redis.cpp | 12 ++++++++++++
src/brpc/redis.h | 6 ++++++
src/brpc/serialized_request.cpp | 7 +++++++
src/brpc/serialized_request.h | 3 +++
src/brpc/thrift_message.cpp | 7 +++++++
src/brpc/thrift_message.h | 3 +++
13 files changed, 79 insertions(+)
diff --git a/src/brpc/esp_message.cpp b/src/brpc/esp_message.cpp
index 0c93c12..583181d 100644
--- a/src/brpc/esp_message.cpp
+++ b/src/brpc/esp_message.cpp
@@ -52,6 +52,12 @@ EspMessage* EspMessage::New() const {
return new EspMessage;
}
+#if GOOGLE_PROTOBUF_VERSION >= 3006000
+EspMessage* EspMessage::New(::google::protobuf::Arena* arena) const {
+ return CreateMaybeMessage<EspMessage>(arena);
+}
+#endif
+
void EspMessage::Clear() {
head.body_len = 0;
body.clear();
diff --git a/src/brpc/esp_message.h b/src/brpc/esp_message.h
index 1b23974..a17fd91 100644
--- a/src/brpc/esp_message.h
+++ b/src/brpc/esp_message.h
@@ -54,6 +54,9 @@ public:
// implements Message ----------------------------------------------
EspMessage* New() const;
+#if GOOGLE_PROTOBUF_VERSION >= 3006000
+ EspMessage* New(::google::protobuf::Arena* arena) const override;
+#endif
void CopyFrom(const ::google::protobuf::Message& from);
void MergeFrom(const ::google::protobuf::Message& from);
void CopyFrom(const EspMessage& from);
diff --git a/src/brpc/memcache.cpp b/src/brpc/memcache.cpp
index cd7ea30..60d6c71 100644
--- a/src/brpc/memcache.cpp
+++ b/src/brpc/memcache.cpp
@@ -63,6 +63,12 @@ MemcacheRequest* MemcacheRequest::New() const {
return new MemcacheRequest;
}
+#if GOOGLE_PROTOBUF_VERSION >= 3006000
+MemcacheRequest* MemcacheRequest::New(::google::protobuf::Arena* arena) const {
+ return CreateMaybeMessage<MemcacheRequest>(arena);
+}
+#endif
+
void MemcacheRequest::Clear() {
_buf.clear();
_pipelined_count = 0;
@@ -207,6 +213,13 @@ MemcacheResponse* MemcacheResponse::New() const {
return new MemcacheResponse;
}
+#if GOOGLE_PROTOBUF_VERSION >= 3006000
+MemcacheResponse*
+MemcacheResponse::New(::google::protobuf::Arena* arena) const {
+ return CreateMaybeMessage<MemcacheResponse>(arena);
+}
+#endif
+
void MemcacheResponse::Clear() {
}
diff --git a/src/brpc/memcache.h b/src/brpc/memcache.h
index bd54c39..ab46457 100644
--- a/src/brpc/memcache.h
+++ b/src/brpc/memcache.h
@@ -90,6 +90,9 @@ public:
// Protobuf methods.
MemcacheRequest* New() const;
+#if GOOGLE_PROTOBUF_VERSION >= 3006000
+ MemcacheRequest* New(::google::protobuf::Arena* arena) const override;
+#endif
void CopyFrom(const ::google::protobuf::Message& from);
void MergeFrom(const ::google::protobuf::Message& from);
void CopyFrom(const MemcacheRequest& from);
@@ -200,6 +203,9 @@ public:
// implements Message ----------------------------------------------
MemcacheResponse* New() const;
+#if GOOGLE_PROTOBUF_VERSION >= 3006000
+ MemcacheResponse* New(::google::protobuf::Arena* arena) const override;
+#endif
void CopyFrom(const ::google::protobuf::Message& from);
void MergeFrom(const ::google::protobuf::Message& from);
void CopyFrom(const MemcacheResponse& from);
diff --git a/src/brpc/nshead_message.cpp b/src/brpc/nshead_message.cpp
index e58de2a..b74089a 100644
--- a/src/brpc/nshead_message.cpp
+++ b/src/brpc/nshead_message.cpp
@@ -54,6 +54,12 @@ NsheadMessage* NsheadMessage::New() const {
return new NsheadMessage;
}
+#if GOOGLE_PROTOBUF_VERSION >= 3006000
+NsheadMessage* NsheadMessage::New(::google::protobuf::Arena* arena) const {
+ return CreateMaybeMessage<NsheadMessage>(arena);
+}
+#endif
+
void NsheadMessage::Clear() {
memset(&head, 0, sizeof(head));
body.clear();
diff --git a/src/brpc/nshead_message.h b/src/brpc/nshead_message.h
index 3f41454..de8810f 100644
--- a/src/brpc/nshead_message.h
+++ b/src/brpc/nshead_message.h
@@ -50,6 +50,9 @@ public:
// implements Message ----------------------------------------------
NsheadMessage* New() const;
+#if GOOGLE_PROTOBUF_VERSION >= 3006000
+ NsheadMessage* New(::google::protobuf::Arena* arena) const override;
+#endif
void CopyFrom(const ::google::protobuf::Message& from);
void MergeFrom(const ::google::protobuf::Message& from);
void CopyFrom(const NsheadMessage& from);
diff --git a/src/brpc/protocol.cpp b/src/brpc/protocol.cpp
index 83846a0..8353fdf 100644
--- a/src/brpc/protocol.cpp
+++ b/src/brpc/protocol.cpp
@@ -203,7 +203,11 @@ BUTIL_FORCE_INLINE bool ParsePbFromZeroCopyStreamInlined(
// According to source code of pb, SetTotalBytesLimit is not a simple set,
// avoid calling the function when the limit is definitely unreached.
if (PB_TOTAL_BYETS_LIMITS < FLAGS_max_body_size) {
+#if GOOGLE_PROTOBUF_VERSION >= 3006000
+ decoder.SetTotalBytesLimit(INT_MAX);
+#else
decoder.SetTotalBytesLimit(INT_MAX, -1);
+#endif
}
return msg->ParseFromCodedStream(&decoder) && decoder.ConsumedEntireMessage();
}
diff --git a/src/brpc/redis.cpp b/src/brpc/redis.cpp
index 50cab08..c482c50 100644
--- a/src/brpc/redis.cpp
+++ b/src/brpc/redis.cpp
@@ -59,6 +59,12 @@ RedisRequest* RedisRequest::New() const {
return new RedisRequest;
}
+#if GOOGLE_PROTOBUF_VERSION >= 3006000
+RedisRequest* RedisRequest::New(::google::protobuf::Arena* arena) const {
+ return CreateMaybeMessage<RedisRequest>(arena);
+}
+#endif
+
void RedisRequest::Clear() {
_ncommand = 0;
_has_error = false;
@@ -271,6 +277,12 @@ RedisResponse* RedisResponse::New() const {
return new RedisResponse;
}
+#if GOOGLE_PROTOBUF_VERSION >= 3006000
+RedisResponse* RedisResponse::New(::google::protobuf::Arena* arena) const {
+ return CreateMaybeMessage<RedisResponse>(arena);
+}
+#endif
+
void RedisResponse::Clear() {
_first_reply.Reset();
_other_replies = NULL;
diff --git a/src/brpc/redis.h b/src/brpc/redis.h
index d90da9e..dfaa25d 100644
--- a/src/brpc/redis.h
+++ b/src/brpc/redis.h
@@ -108,6 +108,9 @@ public:
// Protobuf methods.
RedisRequest* New() const;
+#if GOOGLE_PROTOBUF_VERSION >= 3006000
+ RedisRequest* New(::google::protobuf::Arena* arena) const override;
+#endif
void CopyFrom(const ::google::protobuf::Message& from);
void MergeFrom(const ::google::protobuf::Message& from);
void CopyFrom(const RedisRequest& from);
@@ -178,6 +181,9 @@ public:
// implements Message ----------------------------------------------
RedisResponse* New() const;
+#if GOOGLE_PROTOBUF_VERSION >= 3006000
+ RedisResponse* New(::google::protobuf::Arena* arena) const override;
+#endif
void CopyFrom(const ::google::protobuf::Message& from);
void MergeFrom(const ::google::protobuf::Message& from);
void CopyFrom(const RedisResponse& from);
diff --git a/src/brpc/serialized_request.cpp b/src/brpc/serialized_request.cpp
index 23beeb7..499738f 100644
--- a/src/brpc/serialized_request.cpp
+++ b/src/brpc/serialized_request.cpp
@@ -53,6 +53,13 @@ SerializedRequest* SerializedRequest::New() const {
return new SerializedRequest;
}
+#if GOOGLE_PROTOBUF_VERSION >= 3006000
+SerializedRequest*
+SerializedRequest::New(::google::protobuf::Arena* arena) const {
+ return CreateMaybeMessage<SerializedRequest>(arena);
+}
+#endif
+
void SerializedRequest::Clear() {
_serialized.clear();
}
diff --git a/src/brpc/serialized_request.h b/src/brpc/serialized_request.h
index c59495d..2e30dde 100644
--- a/src/brpc/serialized_request.h
+++ b/src/brpc/serialized_request.h
@@ -44,6 +44,9 @@ public:
// implements Message ----------------------------------------------
SerializedRequest* New() const;
+#if GOOGLE_PROTOBUF_VERSION >= 3006000
+ SerializedRequest* New(::google::protobuf::Arena* arena) const override;
+#endif
void CopyFrom(const ::google::protobuf::Message& from);
void CopyFrom(const SerializedRequest& from);
void Clear();
diff --git a/src/brpc/thrift_message.cpp b/src/brpc/thrift_message.cpp
index c3be85a..77e812b 100644
--- a/src/brpc/thrift_message.cpp
+++ b/src/brpc/thrift_message.cpp
@@ -59,6 +59,13 @@ ThriftFramedMessage* ThriftFramedMessage::New() const {
return new ThriftFramedMessage;
}
+#if GOOGLE_PROTOBUF_VERSION >= 3006000
+ThriftFramedMessage*
+ThriftFramedMessage::New(::google::protobuf::Arena* arena) const {
+ return CreateMaybeMessage<ThriftFramedMessage>(arena);
+}
+#endif
+
void ThriftFramedMessage::Clear() {
body.clear();
if (_own_raw_instance) {
diff --git a/src/brpc/thrift_message.h b/src/brpc/thrift_message.h
index a152b16..8d39548 100644
--- a/src/brpc/thrift_message.h
+++ b/src/brpc/thrift_message.h
@@ -84,6 +84,9 @@ public:
// implements Message ----------------------------------------------
ThriftFramedMessage* New() const;
+#if GOOGLE_PROTOBUF_VERSION >= 3006000
+ ThriftFramedMessage* New(::google::protobuf::Arena* arena) const override;
+#endif
void CopyFrom(const ::google::protobuf::Message& from);
void MergeFrom(const ::google::protobuf::Message& from);
void CopyFrom(const ThriftFramedMessage& from);
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@brpc.apache.org
For additional commands, e-mail: dev-help@brpc.apache.org