| /* |
| * Copyright 2016 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 internal contains gRPC-internal code, to avoid polluting |
| // the godoc of the top-level grpc package. It must not import any grpc |
| // symbols to avoid circular dependencies. |
| package internal |
| |
| import ( |
| "context" |
| "time" |
| |
| "google.golang.org/grpc/connectivity" |
| "google.golang.org/grpc/serviceconfig" |
| ) |
| |
| var ( |
| // WithHealthCheckFunc is set by dialoptions.go |
| WithHealthCheckFunc interface{} // func (HealthChecker) DialOption |
| // HealthCheckFunc is used to provide client-side LB channel health checking |
| HealthCheckFunc HealthChecker |
| // BalancerUnregister is exported by package balancer to unregister a balancer. |
| BalancerUnregister func(name string) |
| // KeepaliveMinPingTime is the minimum ping interval. This must be 10s by |
| // default, but tests may wish to set it lower for convenience. |
| KeepaliveMinPingTime = 10 * time.Second |
| // ParseServiceConfigForTesting is for creating a fake |
| // ClientConn for resolver testing only |
| ParseServiceConfigForTesting interface{} // func(string) *serviceconfig.ParseResult |
| // EqualServiceConfigForTesting is for testing service config generation and |
| // parsing. Both a and b should be returned by ParseServiceConfigForTesting. |
| // This function compares the config without rawJSON stripped, in case the |
| // there's difference in white space. |
| EqualServiceConfigForTesting func(a, b serviceconfig.Config) bool |
| // GetCertificateProviderBuilder returns the registered builder for the |
| // given name. This is set by package certprovider for use from xDS |
| // bootstrap code while parsing certificate provider configs in the |
| // bootstrap file. |
| GetCertificateProviderBuilder interface{} // func(string) certprovider.Builder |
| // GetXDSHandshakeInfoForTesting returns a pointer to the xds.HandshakeInfo |
| // stored in the passed in attributes. This is set by |
| // credentials/xds/xds.go. |
| GetXDSHandshakeInfoForTesting interface{} // func (*attributes.Attributes) *xds.HandshakeInfo |
| // GetServerCredentials returns the transport credentials configured on a |
| // gRPC server. An xDS-enabled server needs to know what type of credentials |
| // is configured on the underlying gRPC server. This is set by server.go. |
| GetServerCredentials interface{} // func (*grpc.Server) credentials.TransportCredentials |
| // DrainServerTransports initiates a graceful close of existing connections |
| // on a gRPC server accepted on the provided listener address. An |
| // xDS-enabled server invokes this method on a grpc.Server when a particular |
| // listener moves to "not-serving" mode. |
| DrainServerTransports interface{} // func(*grpc.Server, string) |
| ) |
| |
| // HealthChecker defines the signature of the client-side LB channel health checking function. |
| // |
| // The implementation is expected to create a health checking RPC stream by |
| // calling newStream(), watch for the health status of serviceName, and report |
| // it's health back by calling setConnectivityState(). |
| // |
| // The health checking protocol is defined at: |
| // https://github.com/grpc/grpc/blob/master/doc/health-checking.md |
| type HealthChecker func(ctx context.Context, newStream func(string) (interface{}, error), setConnectivityState func(connectivity.State, error), serviceName string) error |
| |
| const ( |
| // CredsBundleModeFallback switches GoogleDefaultCreds to fallback mode. |
| CredsBundleModeFallback = "fallback" |
| // CredsBundleModeBalancer switches GoogleDefaultCreds to grpclb balancer |
| // mode. |
| CredsBundleModeBalancer = "balancer" |
| // CredsBundleModeBackendFromBalancer switches GoogleDefaultCreds to mode |
| // that supports backend returned by grpclb balancer. |
| CredsBundleModeBackendFromBalancer = "backend-from-balancer" |
| ) |