A subchannel picker is the object used to pick the subchannel to use for a given call. This is implemented by the LB policy and used by the client channel to perform picks.
Pickers are intended to encapsulate all of the state and logic needed on the data plane (i.e., to actually process picks for individual calls sent on the channel) while excluding all of the state and logic needed on the control plane (i.e., resolver updates, connectivity state notifications, etc); the latter should live in the LB policy object itself.
Currently, pickers are always accessed from within the client_channel data plane mutex, so they do not have to be thread-safe.
Definition at line 260 of file lb_policy.h.