gtsocial-umbx

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

connectivity.go (2684B)


      1 /*
      2  *
      3  * Copyright 2017 gRPC authors.
      4  *
      5  * Licensed under the Apache License, Version 2.0 (the "License");
      6  * you may not use this file except in compliance with the License.
      7  * You may obtain a copy of the License at
      8  *
      9  *     http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  * Unless required by applicable law or agreed to in writing, software
     12  * distributed under the License is distributed on an "AS IS" BASIS,
     13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  * See the License for the specific language governing permissions and
     15  * limitations under the License.
     16  *
     17  */
     18 
     19 // Package connectivity defines connectivity semantics.
     20 // For details, see https://github.com/grpc/grpc/blob/master/doc/connectivity-semantics-and-api.md.
     21 package connectivity
     22 
     23 import (
     24 	"google.golang.org/grpc/grpclog"
     25 )
     26 
     27 var logger = grpclog.Component("core")
     28 
     29 // State indicates the state of connectivity.
     30 // It can be the state of a ClientConn or SubConn.
     31 type State int
     32 
     33 func (s State) String() string {
     34 	switch s {
     35 	case Idle:
     36 		return "IDLE"
     37 	case Connecting:
     38 		return "CONNECTING"
     39 	case Ready:
     40 		return "READY"
     41 	case TransientFailure:
     42 		return "TRANSIENT_FAILURE"
     43 	case Shutdown:
     44 		return "SHUTDOWN"
     45 	default:
     46 		logger.Errorf("unknown connectivity state: %d", s)
     47 		return "INVALID_STATE"
     48 	}
     49 }
     50 
     51 const (
     52 	// Idle indicates the ClientConn is idle.
     53 	Idle State = iota
     54 	// Connecting indicates the ClientConn is connecting.
     55 	Connecting
     56 	// Ready indicates the ClientConn is ready for work.
     57 	Ready
     58 	// TransientFailure indicates the ClientConn has seen a failure but expects to recover.
     59 	TransientFailure
     60 	// Shutdown indicates the ClientConn has started shutting down.
     61 	Shutdown
     62 )
     63 
     64 // ServingMode indicates the current mode of operation of the server.
     65 //
     66 // Only xDS enabled gRPC servers currently report their serving mode.
     67 type ServingMode int
     68 
     69 const (
     70 	// ServingModeStarting indicates that the server is starting up.
     71 	ServingModeStarting ServingMode = iota
     72 	// ServingModeServing indicates that the server contains all required
     73 	// configuration and is serving RPCs.
     74 	ServingModeServing
     75 	// ServingModeNotServing indicates that the server is not accepting new
     76 	// connections. Existing connections will be closed gracefully, allowing
     77 	// in-progress RPCs to complete. A server enters this mode when it does not
     78 	// contain the required configuration to serve RPCs.
     79 	ServingModeNotServing
     80 )
     81 
     82 func (s ServingMode) String() string {
     83 	switch s {
     84 	case ServingModeStarting:
     85 		return "STARTING"
     86 	case ServingModeServing:
     87 		return "SERVING"
     88 	case ServingModeNotServing:
     89 		return "NOT_SERVING"
     90 	default:
     91 		logger.Errorf("unknown serving mode: %d", s)
     92 		return "INVALID_MODE"
     93 	}
     94 }