Clase: Mongo::ClusterTime Privada

Hereda:
BSON::Documento
  • Objeto
Mostrar todo
Definido en:
lib/mongo/cluster_time.rb

Overview

Esta clase forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

ClusterTime encapsula el almacenamiento y las operaciones del tiempo del clúster.

La operación principal que se realiza en el tiempo del clúster es avanzarlo: dado otro tiempo de clúster, elegir el más nuevo de los dos.

Esta clase proporciona métodos de comparación que se utilizan para determinar qué hora de clúster es más nueva y brinda diagnósticos en modo pelusa cuando falta la hora real en un documento de hora de clúster.

Definido en el espacio de nombres

Modules: Consumidor

Colapso delresumen del método de clase

Colapso del resumen del método de instancia

Detalles del constructor

#initialize(elements = nil) ⇒ ClusterTime

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve una nueva instancia de ClusterTime.



30
31
32
33
34
35
36
# Archivo 'lib/mongo/cluster_time.rb', línea 30

def inicializar(elementos = nulo)
  Super

  Si Lint.¿activado? && !yo['clusterTime']
    propagar ArgumentError, 'Creación de un clúster de tiempo sin el campo clusterTime'
  end
end

Detalles del método de clase

.[](doc) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Convierte un BSON::Document en un ClusterTime.

doc puede ser nulo, en cuyo caso se devuelve nulo.



97
98
99
100
101
102
103
# Archivo 'lib/mongo/cluster_time.rb', línea 97

def [](doc)
  Si doc.nil? || doc.is_a?(Tiempo de clúster)
    doc
  else
    Tiempo de clúster.Nuevo(doc)
  end
end

Detalles del método de instancia

#<(otro) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



78
79
80
# Archivo 'lib/mongo/cluster_time.rb', línea 78

def <(otros)
  (yo <=> otros) == -1
end

#<=(otro) ⇒ objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



75
76
77
# Archivo 'lib/mongo/cluster_time.rb', línea 75

def < =(otros)
  (yo <=> otros) != 1
end

#<=>(otro) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Compara dos instancias de ClusterTime comparando sus marcas de tiempo.



56
57
58
59
60
61
62
63
64
# Archivo 'lib/mongo/cluster_time.rb', línea 56

def <=>(otros)
  Si yo['clusterTime'] && otros['clusterTime']
    yo['clusterTime'] <=> otros['clusterTime']
  elsif !yo['clusterTime']
    propagar ArgumentError, "Nose pueden comparar los tiempos del clúster cuando al receptor le falta la clave clusterTime: #{inspect}"
  else otros['clusterTime']
    propagar ArgumentError, "Nose pueden comparar los tiempos del clúster cuando falta la clave clusterTime: #{other.inspect}"
  end
end

#==(otro) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Compara dos instancias de ClusterTime comparando sus marcas de tiempo.



83
84
85
86
87
88
89
90
91
# Archivo 'lib/mongo/cluster_time.rb', línea 83

def ==(otros)
  Si yo['clusterTime'] && otros['clusterTime'] &&
    yo['clusterTime'] == otros['clusterTime']
  entonces
    true
  else
    false
  end
end

#>(otro) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



72
73
74
# Archivo 'lib/mongo/cluster_time.rb', línea 72

def >(otros)
  (yo <=> otros) == 1
end

#&gt=(otro) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Las versiones anteriores de Rubie no implementan otros operadores lógicos mediante <=>. Se debe revisar si estos métodos son necesarios al implementar jira.mongodb.org/browse/RUBY-.1622



69
70
71
# Archivo 'lib/mongo/cluster_time.rb', línea 69

def >=(otros)
  (yo <=> otros) != -1
end

#avance(otro) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Avanza el tiempo del clúster en el receptor al tiempo del clúster en other.

other puede ser nulo o estar detrás del tiempo del clúster en el receptor; en esos casos, el receptor se devuelve sin modificaciones. Si el receptor está adelantado, se devuelve un nuevo objeto ClusterTime.

El valor de retorno es nulo o una instancia de ClusterTime.



45
46
47
48
49
50
51
52
53
# Archivo 'lib/mongo/cluster_time.rb', línea 45

def avanzar(otros)
  Si yo['clusterTime'] && otros['clusterTime'] &&
    otros['clusterTime'] > yo['clusterTime']
  entonces
    Tiempo de clúster[otros]
  else
    yo
  end
end