package manual

import "google.golang.org/grpc/resolver/manual"

Package manual defines a resolver that can be used to manually send resolved addresses to ClientConn.

Index

Types

type Resolver

type Resolver struct {
	// BuildCallback is called when the Build method is called.  Must not be
	// nil.  Must not be changed after the resolver may be built.
	BuildCallback func(resolver.Target, resolver.ClientConn, resolver.BuildOptions)
	// UpdateStateCallback is called when the UpdateState method is called on
	// the resolver.  The value passed as argument to this callback is the value
	// returned by the resolver.ClientConn.  Must not be nil.  Must not be
	// changed after the resolver may be built.
	UpdateStateCallback func(err error)
	// ResolveNowCallback is called when the ResolveNow method is called on the
	// resolver.  Must not be nil.  Must not be changed after the resolver may
	// be built.
	ResolveNowCallback func(resolver.ResolveNowOptions)
	// CloseCallback is called when the Close method is called.  Must not be
	// nil.  Must not be changed after the resolver may be built.
	CloseCallback func()
	// contains filtered or unexported fields
}

Resolver is also a resolver builder. It's build() function always returns itself.

func NewBuilderWithScheme

func NewBuilderWithScheme(scheme string) *Resolver

NewBuilderWithScheme creates a new manual resolver builder with the given scheme. Every instance of the manual resolver may only ever be used with a single grpc.ClientConn. Otherwise, bad things will happen.

func (*Resolver) Build

Build returns itself for Resolver, because it's both a builder and a resolver.

func (*Resolver) CC

func (r *Resolver) CC() resolver.ClientConn

CC returns r's ClientConn when r was last Built. Panics if the resolver has not been Built before.

func (*Resolver) Close

func (r *Resolver) Close()

Close is a noop for Resolver.

func (*Resolver) InitialState

func (r *Resolver) InitialState(s resolver.State)

InitialState adds initial state to the resolver so that UpdateState doesn't need to be explicitly called after Dial.

func (*Resolver) ResolveNow

func (r *Resolver) ResolveNow(o resolver.ResolveNowOptions)

ResolveNow is a noop for Resolver.

func (*Resolver) Scheme

func (r *Resolver) Scheme() string

Scheme returns the manual resolver's scheme.

func (*Resolver) UpdateState

func (r *Resolver) UpdateState(s resolver.State)

UpdateState calls UpdateState(s) on the channel. If the resolver has not been Built before, this instead sets the initial state of the resolver, like InitialState.

Source Files

manual.go

Version
v1.72.0 (latest)
Published
Apr 21, 2025
Platform
linux/amd64
Imports
2 packages
Last checked
6 minutes ago

Tools for package owners.