Documentation ¶
Overview ¶
Package resolver provides internal resolver-related functionality.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SetConfigSelector ¶
func SetConfigSelector(state resolver.State, cs ConfigSelector) resolver.State
SetConfigSelector sets the config selector in state and returns the new state.
Types ¶
type ConfigSelector ¶
type ConfigSelector interface { // Selects the configuration for the RPC, or terminates it using the error. // This error will be converted by the gRPC library to a status error with // code UNKNOWN if it is not returned as a status error. SelectConfig(RPCInfo) (*RPCConfig, error) }
ConfigSelector controls what configuration to use for every RPC.
func GetConfigSelector ¶
func GetConfigSelector(state resolver.State) ConfigSelector
GetConfigSelector retrieves the config selector from state, if present, and returns it or nil if absent.
type RPCConfig ¶
type RPCConfig struct { // The context to use for the remainder of the RPC; can pass info to LB // policy or affect timeout or metadata. Context context.Context MethodConfig serviceconfig.MethodConfig // configuration to use for this RPC OnCommitted func() // Called when the RPC has been committed (retries no longer possible) }
RPCConfig describes the configuration to use for each RPC.
type RPCInfo ¶
type RPCInfo struct { // Context is the user's context for the RPC and contains headers and // application timeout. It is passed for interception purposes and for // efficiency reasons. SelectConfig should not be blocking. Context context.Context Method string // i.e. "/Service/Method" }
RPCInfo contains RPC information needed by a ConfigSelector.
type SafeConfigSelector ¶
type SafeConfigSelector struct {
// contains filtered or unexported fields
}
SafeConfigSelector allows for safe switching of ConfigSelector implementations such that previous values are guaranteed to not be in use when UpdateConfigSelector returns.
func (*SafeConfigSelector) SelectConfig ¶
func (scs *SafeConfigSelector) SelectConfig(r RPCInfo) (*RPCConfig, error)
SelectConfig defers to the current ConfigSelector in scs.
func (*SafeConfigSelector) UpdateConfigSelector ¶
func (scs *SafeConfigSelector) UpdateConfigSelector(cs ConfigSelector)
UpdateConfigSelector swaps to the provided ConfigSelector and blocks until all uses of the previous ConfigSelector have completed.
Directories ¶
Path | Synopsis |
---|---|
Package dns implements a dns resolver to be installed as the default resolver in grpc.
|
Package dns implements a dns resolver to be installed as the default resolver in grpc. |
Package passthrough implements a pass-through resolver.
|
Package passthrough implements a pass-through resolver. |
Package unix implements a resolver for unix targets.
|
Package unix implements a resolver for unix targets. |