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 <zhangshuai.u...@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-unsubscr...@brpc.apache.org For additional commands, e-mail: dev-h...@brpc.apache.org