* * Copyright 2017 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 connectivity defines connectivity semantics. For details, see https://github.com/grpc/grpc/blob/master/doc/connectivity-semantics-and-api.md. All APIs in this package are experimental.
package connectivity

import (
	

	
)

var logger = grpclog.Component("core")
State indicates the state of connectivity. It can be the state of a ClientConn or SubConn.
type State int

func ( State) () string {
	switch  {
	case Idle:
		return "IDLE"
	case Connecting:
		return "CONNECTING"
	case Ready:
		return "READY"
	case TransientFailure:
		return "TRANSIENT_FAILURE"
	case Shutdown:
		return "SHUTDOWN"
	default:
		logger.Errorf("unknown connectivity state: %d", )
		return "Invalid-State"
	}
}

Idle indicates the ClientConn is idle.
Connecting indicates the ClientConn is connecting.
Ready indicates the ClientConn is ready for work.
TransientFailure indicates the ClientConn has seen a failure but expects to recover.
Shutdown indicates the ClientConn has started shutting down.
Reporter reports the connectivity states.
CurrentState returns the current state of the reporter.
WaitForStateChange blocks until the reporter's state is different from the given state, and returns true. It returns false if <-ctx.Done() can proceed (ctx got timeout or got canceled).
	WaitForStateChange(context.Context, State) bool