Class: Mongo::Cluster::Topology::Single
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
| Class Chain: 
          self,
           Base,
          Forwardable | |
| Instance Chain: | |
| Inherits: | Mongo::Cluster::Topology::Base 
 | 
| Defined in: | lib/mongo/cluster/topology/single.rb | 
Overview
Defines behavior for when a cluster is in single topology.
Constant Summary
- 
    NAME =
    # File 'lib/mongo/cluster/topology/single.rb', line 30The display name for the topology. 'Single'.freeze 
::Mongo::Loggable - Included
  
Class Method Summary
Instance Attribute Summary
- 
    
      #replica_set?  ⇒ false 
    
    readonly
    A single topology is not a replica set. 
- 
    
      #sharded?  ⇒ false 
    
    readonly
    A single topology is not sharded. 
- 
    
      #single?  ⇒ true 
    
    readonly
    A single topology is single. 
- 
    
      #unknown?  ⇒ false 
    
    readonly
    An single topology is not unknown. 
Base - Inherited
| #compatibility_error, #compatible?, #data_bearing_servers?, | |
| #logical_session_timeout | The logical session timeout value in minutes. | 
| #monitoring, #options, #server_descriptions, #cluster | |
::Mongo::Monitoring::Publishable - Included
Instance Method Summary
- 
    
      #display_name  ⇒ String 
    
    Get the display name. 
- 
    
      #has_readable_server?(cluster, server_selector = nil)  ⇒ true 
    
    Determine if the topology would select a readable server for the provided candidates and read preference. 
- 
    
      #has_writable_server?(cluster)  ⇒ true 
    
    Determine if the topology would select a writable server for the provided candidates. 
- 
    
      #servers(servers, name = nil)  ⇒ Array<Server> 
    
    Select appropriate servers for this topology. 
- #summary
- #validate_options(options, cluster) private
Base - Inherited
| #addresses, | |
| #max_election_id | The largest electionId ever reported by a primary. | 
| #max_set_version | The largest setVersion ever reported by a primary. | 
| #new_max_election_id, #new_max_set_version, | |
| #replica_set_name | Get the replica set name configured for this topology. | 
| #server_hosts_match_any? | Compares each server address against the list of patterns. | 
| #validate_options | Validates and/or transforms options as necessary for the topology. | 
::Mongo::Monitoring::Publishable - Included
| #publish_cmap_event, #publish_event, #publish_sdam_event, #command_completed, #command_failed, #command_started, #command_succeeded, #duration | 
::Mongo::Loggable - Included
| #log_debug | Convenience method to log debug messages with the standard prefix. | 
| #log_error | Convenience method to log error messages with the standard prefix. | 
| #log_fatal | Convenience method to log fatal messages with the standard prefix. | 
| #log_info | Convenience method to log info messages with the standard prefix. | 
| #log_warn | Convenience method to log warn messages with the standard prefix. | 
| #logger | Get the logger instance. | 
| #_mongo_log_prefix, #format_message | |
Instance Attribute Details
    #replica_set?  ⇒ false  (readonly)
  
A single topology is not a replica set.
# File 'lib/mongo/cluster/topology/single.rb', line 89
def replica_set?; false; end
    #sharded?  ⇒ false  (readonly)
  
A single topology is not sharded.
# File 'lib/mongo/cluster/topology/single.rb', line 113
def sharded?; false; end
    #single?  ⇒ true  (readonly)
  
A single topology is single.
# File 'lib/mongo/cluster/topology/single.rb', line 123
def single?; true; end
    #unknown?  ⇒ false  (readonly)
  
An single topology is not unknown.
# File 'lib/mongo/cluster/topology/single.rb', line 133
def unknown?; false; end
Instance Method Details
    #display_name  ⇒ String 
  
Get the display name.
# File 'lib/mongo/cluster/topology/single.rb', line 40
def display_name self.class.name.gsub(/.*::/, '') end
    #has_readable_server?(cluster, server_selector = nil)  ⇒ true 
  
Determine if the topology would select a readable server for the provided candidates and read preference.
# File 'lib/mongo/cluster/topology/single.rb', line 66
def has_readable_server?(cluster, server_selector = nil); true; end
    #has_writable_server?(cluster)  ⇒ true 
  
Determine if the topology would select a writable server for the provided candidates.
# File 'lib/mongo/cluster/topology/single.rb', line 79
def has_writable_server?(cluster); true; end
    #servers(servers, name = nil)  ⇒ Array<Server> 
  
Select appropriate servers for this topology.
# File 'lib/mongo/cluster/topology/single.rb', line 101
def servers(servers, name = nil) servers.reject { |server| server.unknown? } end
#summary
This method is experimental and subject to change.
# File 'lib/mongo/cluster/topology/single.rb', line 48
def summary details = server_descriptions.keys.join(',') "#{display_name}[#{details}]" end
#validate_options(options, cluster) (private)
# File 'lib/mongo/cluster/topology/single.rb', line 137
def (, cluster) if cluster.servers_list.length > 1 raise ArgumentError, "Cannot instantiate a single topology with more than one server in the cluster: #{cluster.servers_list.map(&:address).map(&:seed).join(', ')}" end super(, cluster) end