| /* |
| * |
| * Copyright 2023 gRPC authors. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| * |
| */ |
| |
| // Package experimental is a collection of experimental features that might |
| // have some rough edges to them. Housing experimental features in this package |
| // results in a user accessing these APIs as `experimental.Foo`, thereby making |
| // it explicit that the feature is experimental and using them in production |
| // code is at their own risk. |
| // |
| // All APIs in this package are experimental. |
| package experimental |
| |
| import ( |
| "google.golang.org/grpc" |
| "google.golang.org/grpc/internal" |
| ) |
| |
| // WithRecvBufferPool returns a grpc.DialOption that configures the use of |
| // bufferPool for parsing incoming messages on a grpc.ClientConn. Depending on |
| // the application's workload, this could result in reduced memory allocation. |
| // |
| // If you are unsure about how to implement a memory pool but want to utilize |
| // one, begin with grpc.NewSharedBufferPool. |
| // |
| // Note: The shared buffer pool feature will not be active if any of the |
| // following options are used: WithStatsHandler, EnableTracing, or binary |
| // logging. In such cases, the shared buffer pool will be ignored. |
| // |
| // Note: It is not recommended to use the shared buffer pool when compression is |
| // enabled. |
| func WithRecvBufferPool(bufferPool grpc.SharedBufferPool) grpc.DialOption { |
| return internal.WithRecvBufferPool.(func(grpc.SharedBufferPool) grpc.DialOption)(bufferPool) |
| } |
| |
| // RecvBufferPool returns a grpc.ServerOption that configures the server to use |
| // the provided shared buffer pool for parsing incoming messages. Depending on |
| // the application's workload, this could result in reduced memory allocation. |
| // |
| // If you are unsure about how to implement a memory pool but want to utilize |
| // one, begin with grpc.NewSharedBufferPool. |
| // |
| // Note: The shared buffer pool feature will not be active if any of the |
| // following options are used: StatsHandler, EnableTracing, or binary logging. |
| // In such cases, the shared buffer pool will be ignored. |
| // |
| // Note: It is not recommended to use the shared buffer pool when compression is |
| // enabled. |
| func RecvBufferPool(bufferPool grpc.SharedBufferPool) grpc.ServerOption { |
| return internal.RecvBufferPool.(func(grpc.SharedBufferPool) grpc.ServerOption)(bufferPool) |
| } |