클래스: Mongo::ClusterTime Private

상속:
BSON::Document
  • 객체
모두 표시
다음에 정의됨:
lib/ Mongo/cluster_time.rb

개요

이 클래스는 비공개 API의 일부입니다. 이 클래스는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

ClusterTime은 클러스터 시간 저장 및 작업을 캡슐화합니다.

클러스터 시간에 수행되는 프라이머리 작업은 클러스터 시간을 앞당기는 것입니다: 다른 클러스터 시간이 주어지면 둘 중 더 새로운 시간을 선택합니다.

이 클래스는 어떤 클러스터 시간이 최신인지 파악하는 데 사용되는 비교 메서드를 제공하고, 클러스터 시간 문서에서 실제 시간이 누락된 경우 린트 모드에서 진단을 제공합니다.

네임스페이스 아래에 정의됨

모듈: 소비자

클래스 메서드 요약 접기

인스턴스 메서드 요약 접기

생성자 세부 정보

#initialize(elements = nil) ⇒ ClusterTime

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

ClusterTime의 새 인스턴스를 반환합니다.



30
31
32
33
34
35
36
# 파일 'lib/ Mongo/cluster_time.rb', 줄 30

def 초기화(요소 = nil)
  super

  만약 Lint.활성화? && !self['clusterTime']
    올리다 ArgumentError, 'clusterTime 필드 없이 클러스터 시간 생성'
  end
end

클래스 메서드 세부 정보

.[](doc) ⇒ 객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

BSON::Document를 ClusterTime으로 변환합니다.

doc 은 nil일 수 있으며, 이 경우 nil이 반환됩니다.



97
98
99
100
101
102
103
# 파일 'lib/ Mongo/cluster_time.rb', 줄 97

def [](doc)
  만약 doc.nil? || doc.is_a?(ClusterTime)
    doc
  other
    ClusterTime.신규(doc)
  end
end

인스턴스 메서드 세부 정보

#<(기타) ⇒ 객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.



78
79
80
# 파일 'lib/ Mongo/cluster_time.rb', 줄 78

def <(기타)
  (self <=> 기타) == -1
end

#<=(기타) ⇒ 객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.



75
76
77
# 파일 'lib/ Mongo/cluster_time.rb', 줄 75

def <=(기타)
  (self <=> 기타) != 1
end

#<=>(기타) ⇒ 객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

타임스탬프를 비교하여 두 ClusterTime 인스턴스를 비교합니다.



56
57
58
59
60
61
62
63
64
# 파일 'lib/ Mongo/cluster_time.rb', 줄 56

def <=>(기타)
  만약 self['clusterTime'] && 기타['clusterTime']
    self['clusterTime'] <=> 기타['clusterTime']
  elsif !self['clusterTime']
    올리다 ArgumentError, "수신자에 clusterTime 키가 누락된 경우 클러스터 시간을 비교할 수 없습니다: #{검사}"
  other 기타['clusterTime']
    올리다 ArgumentError, "other 에 clusterTime 키가 누락된 경우 클러스터 시간을 비교할 수 없습니다: #{other.검사}"
  end
end

#==(기타) ⇒ 객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

타임스탬프를 비교하여 두 ClusterTime 인스턴스를 비교합니다.



83
84
85
86
87
88
89
90
91
# 파일 'lib/ Mongo/cluster_time.rb', 줄 83

def ==(기타)
  만약 self['clusterTime'] && 기타['clusterTime'] &&
    self['clusterTime'] == 기타['clusterTime']
  then
    true
  other
    거짓
  end
end

#>(기타) ⇒ 객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.



72
73
74
# 파일 'lib/ Mongo/cluster_time.rb', 줄 72

def >(기타)
  (self <=> 기타) == 1
end

#>=(기타) ⇒ 객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

이전 Rubies는 <=>를 통해 다른 논리 연산자를 구현하지 않습니다. TODO는 jira.mongodb.org/browse/RUBY-1622 이 구현될 때 이러한 메서드가 필요한지 여부를 수정합니다.



69
70
71
# 파일 'lib/ Mongo/cluster_time.rb', 줄 69

def >=(기타)
  (self <=> 기타) != -1
end

#advanced(기타) ⇒ 객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

수신기의 클러스터 시간을 other 단위의 클러스터 시간으로 앞당깁니다.

other nil이거나 수신자에서 클러스터 시간보다 늦을 수 있습니다. 이 경우 수신자는 수정되지 않은 상태로 반환됩니다. 수신자가 고급인 경우 새 ClusterTime 객체가 반환됩니다.

반환 값은 nil 또는 ClusterTime 인스턴스 입니다.



45
46
47
48
49
50
51
52
53
# 파일 'lib/ Mongo/cluster_time.rb', 줄 45

def 사전(기타)
  만약 self['clusterTime'] && 기타['clusterTime'] &&
    기타['clusterTime'] > self['clusterTime']
  then
    ClusterTime[기타]
  other
    self
  end
end