클래스: Mongo::Operation::Context Private

상속:
객체
  • 객체
모두 표시
다음에 정의됨:
빌드/ Ruby-driver-v2.19/lib/mongo/operation/context.rb

개요

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

작업에 대한 컨텍스트입니다.

작업 실행에 대한 결정을 내리는 데 필요한 다양한 객체를 단일 컨테이너 에 담고, 포함된 객체에 대한 파사드 메서드를 제공합니다.

컨텍스트에는 작업에 대한 매개변수가 포함되어 있으므로 작업이 준비되는 동안에는 컨텍스트에서 아무 것도 변경되지 않아야 합니다. 작업 결과가 처리되는 동안 컨텍스트에서 반환된 데이터가 변경될 수 있지만(예: 트랜잭션이 중단된 경우), 이 시점이 되면 작업은 더 이상 컨텍스트에서 아무 것도 읽지 않아야 합니다. 컨텍스트 데이터는 작업 실행 중에 변경될 수 있으므로 컨텍스트 객체를 여러 작업에 재사용해서는 안 됩니다.

인스턴스 속성 요약 접기

인스턴스 메서드 요약 접기

생성자 세부 정보

#initialize(클라이언트: nil, session: nil, connection_global_id: nil, options: nil) ⇒ 컨텍스트

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

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



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/operation/context.rb', 줄 38

def 초기화(클라이언트: nil, 세션: nil, connection_global_id: nil, 옵션: nil)
  만약 옵션
    만약 고객
      올리다 ArgumentError, '클라이언트와 옵션을 모두 지정할 수 없습니다.'
    end

    만약 Session
      올리다 ArgumentError, '세션과 옵션을 모두 지정할 수 없습니다.'
    end
  end

  만약 connection_global_id && Session&.pinned_connection_global_id
    올리다 ArgumentError, 세션 이미 연결에 고정된 상태에서 컨텍스트를 연결에 고정하려고 합니다.'
  end

  @client = 고객
  @session = Session
  @connection_global_id = connection_global_id
  @options = 옵션
end

인스턴스 속성 세부 정보

#클라이언트객체 (읽기 전용)

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



59
60
61
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/operation/context.rb', 줄 59

def 고객
  @client
end

#options객체 (읽기 전용)

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



61
62
63
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/operation/context.rb', 줄 61

def 옵션
  @options
end

#세션객체 (읽기 전용)

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



60
61
62
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/operation/context.rb', 줄 60

def Session
  @session
end

인스턴스 메서드 세부 정보

#aborting_transaction?부울

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

반환합니다:

  • (부울)


79
80
81
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/operation/context.rb', 줄 79

def aborting_transaction?
  in_transaction? && Session.aborting_transaction?
end

#any_retry_writes?부울

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

반환합니다:

  • (부울)


91
92
93
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/operation/context.rb', 줄 91

def any_retry_writes?
  Modern_retry_writes? || legacy_retry_writes?
end

#committing_transaction?부울

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

반환합니다:

  • (부울)


75
76
77
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/operation/context.rb', 줄 75

def committing_transaction?
  in_transaction? && Session.committing_transaction?
end

#connection_global_id객체

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



63
64
65
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/operation/context.rb', 줄 63

def connection_global_id
  @connection_global_id || Session&.pinned_connection_global_id
end

# 암호를해독하시겠습니까?부울

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

반환합니다:

  • (부울)


125
126
127
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/operation/context.rb', 줄 125

def 해독?
  !!고객&.암호화기
end

#암호화?부울

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

반환합니다:

  • (부울)


121
122
123
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/operation/context.rb', 줄 121

def 암호화?
  고객&.암호화기&.암호화? || 거짓
end

#encrypter객체

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



129
130
131
132
133
134
135
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/operation/context.rb', 줄 129

def 암호화기
  만약 고객&.암호화기
    고객.암호화기
  other
    올리다 오류::Internal DriverError, '암호화는 암호화 를 수행할 때만 액세스해야 합니다.'
  end
end

#in_transaction?부울

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

반환합니다:

  • (부울)


67
68
69
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/operation/context.rb', 줄 67

def in_transaction?
  Session&.in_transaction? || 거짓
end

#legacy_retry_writes?부울

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

반환합니다:

  • (부울)


87
88
89
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/operation/context.rb', 줄 87

def legacy_retry_writes?
  고객 && !고객.옵션[:retry_writes] && 고객.max_write_retries > 0
end

#Modern_retry_writes?부울

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

반환합니다:

  • (부울)


83
84
85
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/operation/context.rb', 줄 83

def Modern_retry_writes?
  고객 && 고객.옵션[:retry_writes]
end

#다시 시도하시겠습니까?부울

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

작업이 재시도인지(true) 또는 초기 시도인지(false)인지 여부입니다.

반환합니다:

  • (부울)


104
105
106
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/operation/context.rb', 줄 104

def 재시도?
  !!@is_retry
end

#server_api객체

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



95
96
97
98
99
100
101
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/operation/context.rb', 줄 95

def server_api
  만약 고객
    고객.옵션[:server_api]
  elsif 옵션
    옵션[:server_api]
  end
end

#startup_transaction?부울

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

반환합니다:

  • (부울)


71
72
73
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/operation/context.rb', 줄 71

def startup_transaction?
  Session&.startup_transaction? || 거짓
end

#with(**opts) ⇒ 객체

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

제공된 인수에 따라 매개변수가 변경된 새 컨텍스트를 반환합니다.

매개변수:

  • opts (해시)

    사용자 지정 가능한 옵션 세트

옵션 해시(**opts):

  • :is_retry (true|false)

    작업이 재시도인지 첫 번째 시도인지 여부입니다.



113
114
115
116
117
118
119
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/operation/context.rb', 줄 113

def (**opts)
  dup. do |copy|
    opts. do |k, v|
      copy.instance_variable_set("@#{k}", v)
    end
  end
end