Classe: Mongo::ClusterTime Private

Herda:
BSON::Document
  • Objeto
mostrar tudo
Definido em:
build/ruby-driver-v2.19/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.



30
31
32
33
34
35
36
# File 'build/ruby-driver-v2.19/lib/mongo/cluster_time.rb', linha 30

def inicializar(Elementos = nada)
  super

  se Lint.habilitado? && !auto['clusterTime']
    aumentar ArgumentError, 'Criando um tempo de cluster sem o campo clusterTime'
  end
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.



97
98
99
100
101
102
103
# File 'build/ruby-driver-v2.19/lib/mongo/cluster_time.rb', linha 97

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.



78
79
80
# File 'build/ruby-driver-v2.19/lib/mongo/cluster_time.rb', linha 78

def <(Outro)
  (auto <=> Outro) == -1
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.



75
76
77
# File 'build/ruby-driver-v2.19/lib/mongo/cluster_time.rb', linha 75

def <=(Outro)
  (auto <=> Outro) != 1
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.



56
57
58
59
60
61
62
63
64
# File 'build/ruby-driver-v2.19/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.



83
84
85
86
87
88
89
90
91
# File 'build/ruby-driver-v2.19/lib/mongo/cluster_time.rb', linha 83

def ==(Outro)
  se auto['clusterTime'] && Outro['clusterTime'] &&
    auto['clusterTime'] == Outro['clusterTime']
  então
    true
  mais
    false
  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.



72
73
74
# File 'build/ruby-driver-v2.19/lib/mongo/cluster_time.rb', linha 72

def >(Outro)
  (auto <=> Outro) == 1
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.

Os Rubis mais antigos não implementam outros operadores lógicos através de <=>. TODO revise se esses métodos são necessários quando jira.mongodb.org/browse/RUBY-{11622 é implementado.



69
70
71
# File 'build/ruby-driver-v2.19/lib/mongo/cluster_time.rb', linha 69

def >=(Outro)
  (auto <=> Outro) != -1
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.



45
46
47
48
49
50
51
52
53
# File 'build/ruby-driver-v2.19/lib/mongo/cluster_time.rb', linha 45

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