class Mongo::Cluster::Topology::Single

Defines behaviour for when a cluster is in single topology.

@since 2.0.0

Constants

NAME

The display name for the topology.

@since 2.0.0

Attributes

monitoring[R]

@return [ monitoring ] monitoring the monitoring.

options[R]

@return [ Hash ] options The options.

seed[R]

@return [ String ] seed The seed address.

Public Class Methods

new(options, monitoring, seeds = []) click to toggle source

Initialize the topology with the options.

@example Initialize the topology.

Single.new(options)

@param [ Hash ] options The options. @param [ Monitoring ] monitoring The monitoring. @param [ Array<String> ] seeds The seeds.

@since 2.0.0

# File lib/mongo/cluster/topology/single.rb, line 102
def initialize(options, monitoring, seeds = [])
  @options = options
  @monitoring = monitoring
  @seed = seeds.first
end

Public Instance Methods

add_hosts?(description, servers) click to toggle source

Whether a server description's hosts may be added to the cluster.

@example Check if a description's hosts may be added to the cluster.

topology.add_hosts?(description, servers)

@param [ Mongo::Server::Description ] description The description. @param [ Array<Mongo::Server> ] servers The cluster servers.

@return [ false ] A description's hosts are never added to a

cluster of Single topology.

@since 2.0.6

# File lib/mongo/cluster/topology/single.rb, line 154
def add_hosts?(description, servers); false; end
display_name() click to toggle source

Get the display name.

@example Get the display name.

Single.display_name

@return [ String ] The display name.

@since 2.0.0

# File lib/mongo/cluster/topology/single.rb, line 47
def display_name
  NAME
end
elect_primary(description, servers) click to toggle source

Elect a primary server within this topology.

@example Elect a primary server.

topology.elect_primary(description, servers)

@param [ Server::Description ] description The description of the

elected primary.

@param [ Array<Server> ] servers The list of known servers to the

cluster.

@return [ Single ] The topology.

# File lib/mongo/cluster/topology/single.rb, line 62
def elect_primary(description, servers); self; end
has_readable_server?(cluster, server_selector = nil) click to toggle source

Determine if the topology would select a readable server for the provided candidates and read preference.

@example Is a readable server present?

topology.has_readable_server?(cluster, server_selector)

@param [ Cluster ] cluster The cluster. @param [ ServerSelector ] server_selector The server

selector.

@return [ true ] A standalone always has a readable server.

@since 2.4.0

# File lib/mongo/cluster/topology/single.rb, line 77
def has_readable_server?(cluster, server_selector = nil); true; end
has_writable_server?(cluster) click to toggle source

Determine if the topology would select a writable server for the provided candidates.

@example Is a writable server present?

topology.has_writable_server?(servers)

@param [ Cluster ] cluster The cluster.

@return [ true ] A standalone always has a writable server.

@since 2.4.0

# File lib/mongo/cluster/topology/single.rb, line 90
def has_writable_server?(cluster); true; end
member_discovered() click to toggle source

Publish that a member of this topology was discovered.

@example Publish that a member was discovered.

topology.member_discovered

@since 2.4.0

# File lib/mongo/cluster/topology/single.rb, line 229
def member_discovered
  publish_sdam_event(
    Monitoring::TOPOLOGY_CHANGED,
    Monitoring::Event::TopologyChanged.new(self, self)
  )
end
remove_hosts?(description) click to toggle source

Whether a description can be used to remove hosts from the cluster.

@example Check if a description can be used to remove hosts from the cluster.

topology.remove_hosts?(description)

@param [ Mongo::Server::Description ] description The description.

@return [ true ] A description can never be used to remove hosts

from a cluster of Single topology.

@since 2.0.6

# File lib/mongo/cluster/topology/single.rb, line 168
def remove_hosts?(description); false; end
remove_server?(description, server) click to toggle source

Whether a specific server in the cluster can be removed, given a description.

@example Check if a specific server can be removed from the cluster.

topology.remove_server?(description, server)

@param [ Mongo::Server::Description ] description The description. @param [ Mongo::Serve ] server The server in question.

@return [ false ] A server is never removed from a cluster of Single topology.

@since 2.0.6

# File lib/mongo/cluster/topology/single.rb, line 181
def remove_server?(description, server); false; end
replica_set?() click to toggle source

A single topology is not a replica set.

@example Is the topology a replica set?

Single.replica_set?

@return [ false ] Always false.

@since 2.0.0

# File lib/mongo/cluster/topology/single.rb, line 116
def replica_set?; false; end
replica_set_name() click to toggle source

Single topologies have no replica set name.

@example Get the replica set name.

single.replica_set_name

@return [ nil ] Always nil.

@since 2.0.0

# File lib/mongo/cluster/topology/single.rb, line 126
def replica_set_name; nil; end
servers(servers, name = nil) click to toggle source

Select appropriate servers for this topology.

@example Select the servers.

Single.servers(servers, 'test')

@param [ Array<Server> ] servers The known servers.

@return [ Array<Server> ] The single servers.

@since 2.0.0

# File lib/mongo/cluster/topology/single.rb, line 138
def servers(servers, name = nil)
  [ servers.detect { |server| !server.unknown? } ]
end
sharded?() click to toggle source

A single topology is not sharded.

@example Is the topology sharded?

Single.sharded?

@return [ false ] Always false.

@since 2.0.0

# File lib/mongo/cluster/topology/single.rb, line 191
def sharded?; false; end
single?() click to toggle source

A single topology is single.

@example Is the topology single?

Single.single?

@return [ true ] Always true.

@since 2.0.0

# File lib/mongo/cluster/topology/single.rb, line 201
def single?; true; end
standalone_discovered() click to toggle source

Notify the topology that a standalone was discovered.

@example Notify the topology that a standalone was discovered.

topology.standalone_discovered

@return [ Topology::Single ] Always returns self.

@since 2.0.6

# File lib/mongo/cluster/topology/single.rb, line 221
def standalone_discovered; self; end
unknown?() click to toggle source

An single topology is not unknown.

@example Is the topology unknown?

Single.unknown?

@return [ false ] Always false.

@since 2.0.0

# File lib/mongo/cluster/topology/single.rb, line 211
def unknown?; false; end