 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
- Constants
- func MaxStalenessSupported(serverVersion Version, wireVersion *VersionRange) error
- func ScramSHA1Supported(version Version) error
- type SelectedServer
- type Server
- type ServerKind
- type ServerSelector
- type ServerSelectorFunc
- type Topology
- type TopologyDiff
- type TopologyKind
- type Version
- type VersionRange
Constants ¶
const Unknown = 0
    Unknown is an unknown server or topology kind.
const UnsetRTT = -1 * time.Millisecond
    UnsetRTT is the unset value for a round trip time.
Variables ¶
This section is empty.
Functions ¶
func MaxStalenessSupported ¶
func MaxStalenessSupported(serverVersion Version, wireVersion *VersionRange) error
MaxStalenessSupported returns an error if the given server version does not support max staleness.
func ScramSHA1Supported ¶
ScramSHA1Supported returns an error if the given server version does not support scram-sha-1.
Types ¶
type SelectedServer ¶
type SelectedServer struct {
	Server
	Kind TopologyKind
}
    SelectedServer represents a selected server that is a member of a topology.
type Server ¶
type Server struct {
	Addr address.Address
	AverageRTT        time.Duration
	AverageRTTSet     bool
	CanonicalAddr     address.Address
	ElectionID        objectid.ObjectID
	GitVersion        string
	HeartbeatInterval time.Duration
	LastError         error
	LastUpdateTime    time.Time
	LastWriteTime     time.Time
	MaxBatchCount     uint32
	MaxDocumentSize   uint32
	MaxMessageSize    uint32
	Members           []address.Address
	ReadOnly          bool
	SetName           string
	SetVersion        uint32
	Tags              tag.Set
	Kind              ServerKind
	WireVersion       *VersionRange
	Version           Version
}
    Server represents a description of a server. This is created from an isMaster command.
type ServerKind ¶
type ServerKind uint32
ServerKind represents the type of a server.
const ( Standalone ServerKind = 1 RSMember ServerKind = 2 RSPrimary ServerKind = 4 + RSMember RSSecondary ServerKind = 8 + RSMember RSArbiter ServerKind = 16 + RSMember RSGhost ServerKind = 32 + RSMember Mongos ServerKind = 256 )
These constants are the possible types of servers.
func (ServerKind) String ¶
func (kind ServerKind) String() string
String implements the fmt.Stringer interface.
type ServerSelector ¶
ServerSelector is an interface implemented by types that can select a server given a topology description.
func CompositeSelector ¶
func CompositeSelector(selectors []ServerSelector) ServerSelector
CompositeSelector combines multiple selectors into a single selector.
func LatencySelector ¶
func LatencySelector(latency time.Duration) ServerSelector
LatencySelector creates a ServerSelector which selects servers based on their latency.
func ReadPrefSelector ¶
func ReadPrefSelector(rp *readpref.ReadPref) ServerSelector
ReadPrefSelector selects servers based on the provided read preference.
func WriteSelector ¶
func WriteSelector() ServerSelector
WriteSelector selects all the writable servers.
type ServerSelectorFunc ¶
ServerSelectorFunc is a function that can be used as a ServerSelector.
func (ServerSelectorFunc) SelectServer ¶
func (ssf ServerSelectorFunc) SelectServer(t Topology, s []Server) ([]Server, error)
SelectServer implements the ServerSelector interface.
type Topology ¶
type Topology struct {
	Servers []Server
	Kind    TopologyKind
}
    Topology represents a description of a mongodb topology
type TopologyDiff ¶
TopologyDiff is the difference between two different topology descriptions.
func DiffTopology ¶
func DiffTopology(old, new Topology) TopologyDiff
DiffTopology compares the two topology descriptions and returns the difference.
type TopologyKind ¶
type TopologyKind uint32
TopologyKind represents a specific topology configuration.
const ( Single TopologyKind = 1 ReplicaSet TopologyKind = 2 ReplicaSetNoPrimary TopologyKind = 4 + ReplicaSet ReplicaSetWithPrimary TopologyKind = 8 + ReplicaSet Sharded TopologyKind = 256 )
These constants are the available topology configurations.
func (TopologyKind) String ¶
func (kind TopologyKind) String() string
String implements the fmt.Stringer interface.
type Version ¶
Version represents a software version.
type VersionRange ¶
VersionRange represents a range of versions.
func NewVersionRange ¶
func NewVersionRange(min, max int32) VersionRange
NewVersionRange creates a new VersionRange given a min and a max.
func (VersionRange) Includes ¶
func (vr VersionRange) Includes(v int32) bool
Includes returns a bool indicating whether the supplied integer is included in the range.
func (VersionRange) String ¶
func (vr VersionRange) String() string
String implements the fmt.Stringer interface.