func()

in grpcgcp/gcp_balancer.go [65:87]


func (bb *gcpBalancerBuilder) Build(
	cc balancer.ClientConn,
	opt balancer.BuildOptions,
) balancer.Balancer {
	gb := &gcpBalancer{
		cc:               cc,
		methodCfg:        make(map[string]*pb.AffinityConfig),
		affinityMap:      make(map[string]balancer.SubConn),
		fallbackMap:      make(map[string]balancer.SubConn),
		scRefs:           make(map[balancer.SubConn]*subConnRef),
		scStates:         make(map[balancer.SubConn]connectivity.State),
		refreshingScRefs: make(map[balancer.SubConn]*subConnRef),
		scRefList:        []*subConnRef{},
		rrRefId:          ^uint32(0),
		csEvltr:          &connectivityStateEvaluator{},
		// Initialize picker to a picker that always return
		// ErrNoSubConnAvailable, because when state of a SubConn changes, we
		// may call UpdateBalancerState with this picker.
		picker: newErrPicker(balancer.ErrNoSubConnAvailable),
	}
	gb.log = NewGCPLogger(compLogger, fmt.Sprintf("[gcpBalancer %p]", gb))
	return gb
}