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