Clase: Mongo::ClusterTime Privado

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

Overview

Esta clase forma parte de una API privada. Evita usar esta clase si es posible, ya que puede ser eliminada o modificada en el futuro.

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

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

Esta clase proporciona métodos de comparación que se utilizan para determinar qué tiempo de clúster es más reciente, y proporciona diagnósticos en modo lint cuando falta el tiempo real en un documento de tiempo de clúster.

Definido bajo Namespace

Modules: Consumidor

Resumen del método de clase colapsar

Resumen del método de instancia colapsar

Detalles del Constructor

#initialize(elements = nil) ⇒ ClusterTime

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve una nueva instancia de ClusterTime.

Aumenta:

  • (ArgumentError)


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

def inicializar(elementos = nulo)
  super

  return a menos que Lint.¿habilitado? && !sí mismo['clusterTime']

  propagar ArgumentError, 'Creando un tiempo de clúster sin campo clusterTime'
end

Detalles del método de clase

.[](doc) ⇒ Objeto

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Convierte un BSON::Document a ClusterTime.

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



81
82
83
84
85
86
87
# Archivo 'lib/mongo/cluster_time.rb', línea 81

def [](doc)
  si doc.nil? || doc.is_a?(ClusterTime)
    doc
  else
    ClusterTime.Nuevo(doc)
  end
end

Detalles del método de instancia

#<=>(otro) ⇒ Objeto

Este método es parte de una API privada. Se debe evitar el uso de este método 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
65
# Archivo 'lib/mongo/cluster_time.rb', línea 56

def <=>(Otros)
  si sí mismo['clusterTime'] && Otros['clusterTime']
    sí mismo['clusterTime'] <=> Otros['clusterTime']
  elsif !sí mismo['clusterTime']
    propagar ArgumentError, "No se pueden comparar los tiempos de clúster cuando al receptor le falta la clave de clusterTime: #{inspeccionar}"
  else
    Otros['clusterTime']
    propagar ArgumentError, "No se pueden comparar los tiempos de clúster cuando a otro le falta la clave clusterTime: #{otro.inspeccionar}"
  end
end

#==(otra) ⇒ Objeto

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Compara dos instancias de ClusterTime comparando sus marcas de tiempo.



68
69
70
71
72
73
74
75
# Archivo 'lib/mongo/cluster_time.rb', línea 68

def ==(Otros)
  si sí mismo['clusterTime'] && Otros['clusterTime'] &&
     sí mismo['clusterTime'] == Otros['clusterTime']
    true
  else
    false
  end
end

#avanzar(otro) ⇒ Objeto

Este método es parte de una API privada. Se debe evitar el uso de este método 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 nil o una instancia de ClusterTime.



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

def anticipo(Otros)
  si sí mismo['clusterTime'] && Otros['clusterTime'] &&
     Otros['clusterTime'] > sí mismo['clusterTime']
    ClusterTime[Otros]
  else
    sí mismo
  end
end