Classe: Mongo::ClusterTime Private

Herda:
BSON::Document
  • Objeto
mostrar tudo
Inclui:
Comparável
Definido em:
lib/mongo/cluster_time.rb

Visão geral

Esta classe faz parte de uma API privada. Evite usar essa classe, se possível, pois ela pode ser removida ou alterada no futuro.

O ClusterTime encapsula o armazenamento e as operações de tempo de cluster.

A principal operação realizada no tempo de cluster é avance para ele: dado outro tempo de cluster, escolha o mais recente dos dois.

Essa classe fornece métodos de comparação usados para descobrir qual tempo de cluster é mais recente e fornece diagnósticos no modo lint quando o tempo real está ausente em um documento de tempo de cluster.

Definido sob namespace

Módulos: Consumidor

Recolhimento do Resumo do método de classe

Recolhimento do Resumo do método de instância

Detalhes do construtor

#initialize(elements = nil) ➤ ClusterTime

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna uma nova instância de ClusterTime.

Aumenta:

  • (ArgumentError)


31
32
33
34
35
36
37
# Arquivo 'lib/mongo/cluster_time.rb', linha 31

def inicializar(Elementos = nada)
  super

  Método a menos que Lint.habilitado? && !auto['clusterTime']

  aumentar ArgumentError, 'Criando um tempo de cluster sem o campo clusterTime'
end

Detalhes do método de classe

.[](doc) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Converte um BSON::Document para um ClusterTime.

doc pode ser nulo, caso em que nulo é retornado.



81
82
83
84
85
86
87
# Arquivo 'lib/mongo/cluster_time.rb', linha 81

def [](doc)
  se doc.nada? || doc.is_a?(ClusterTime)
    doc
  mais
    ClusterTime.Novo(doc)
  end
end

Detalhes do método de instância

#<=>(outro) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Compara duas instâncias ClusterTime comparando seus registros de data/hora.



56
57
58
59
60
61
62
63
64
65
# Arquivo 'lib/mongo/cluster_time.rb', linha 56

def <=>(Outro)
  se auto['clusterTime'] && Outro['clusterTime']
    auto['clusterTime'] <=> Outro['clusterTime']
  elsif !auto['clusterTime']
    aumentar ArgumentError, "Não é possível comparar os horários do cluster quando o receptor não tem a chave clusterTime: #{inspecionar}"
  mais
    Outro['clusterTime']
    aumentar ArgumentError, "Não é possível comparar horários de cluster quando outro está sem chave clusterTime: #{outro.inspecionar}"
  end
end

#==(outro) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Compara duas instâncias ClusterTime comparando seus registros de data/hora.



68
69
70
71
72
73
74
75
# Arquivo 'lib/mongo/cluster_time.rb', linha 68

def ==(Outro)
  se auto['clusterTime'] && Outro['clusterTime'] &&
     auto['clusterTime'] == Outro['clusterTime']
    true
  mais
    false
  end
end

#adiantamento(outro) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Avança a hora do cluster no receptor para a hora do cluster em other.

other pode ser nulo ou estar atrasado em relação ao tempo de agrupamento no receptor; nestes casos, o receptor é retornado sem modificações. Se o receptor for avançado, um novo objeto ClusterTime será retornado.

O valor de retorno é nil ou uma instância do ClusterTime.



46
47
48
49
50
51
52
53
# Arquivo 'lib/mongo/cluster_time.rb', linha 46

def avance(Outro)
  se auto['clusterTime'] && Outro['clusterTime'] &&
     Outro['clusterTime'] > auto['clusterTime']
    ClusterTime[Outro]
  mais
    auto
  end
end