类:Mongo::Operation::Context Private
- 继承:
-
对象
- 对象
- Mongo::Operation::Context
- 定义于:
- 构建/ruby-driver-v2.19/lib/ mongo /operation/context.rb
Overview
此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。
操作的上下文。
在单个容器中保存有关操作执行决策所需的各种对象,并为所包含的对象提供门面方法。
上下文包含操作的参数,因此在准备操作时,上下文中的任何内容都不应更改。 处理操作结果时,上下文返回的数据可能会更改(例如,由于事务中止),但此时该操作不应再从上下文中读取任何内容。 由于上下文数据在操作执行期间可能会发生变化,因此上下文对象不应为多个操作重复使用。
实例属性摘要折叠
- #客户端⇒ 对象 只读 private
- # options ⇒ 对象 只读 private
- # session ⇒ 对象 只读 private
实例方法摘要折叠
- # aborting_transaction? ⇒ 布尔 private
- # any_retry_writes? ⇒ 布尔 private
- # committing_transaction? ⇒ 布尔 private
- # connection_global_id ⇒ 对象 private
- #解密? ⇒ 布尔 private
- # encrypt? ⇒ 布尔 private
- # Encrypter ⇒ 对象 private
- #in_transaction? ⇒ Boolean private
-
#initialize (client: nil, session: nil, connection_global_id: nil, options: nil) ⇒ 上下文
构造函数
private
Context 的新实例。
- #legacy_retry_writes? ⇒ 布尔 private
- #modern_retry_writes? ⇒ 布尔 private
-
#重试? ⇒ 布尔
private
该操作是重试 (true) 还是初始尝试 (false)。
- # server_api ⇒ 对象 private
- # startup_transaction? ⇒ 布尔 private
-
# with (**opts) ⇒ 对象
private
返回一个新的上下文,其中的参数根据提供的参数进行更改。
构造函数详情
#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 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /operation/context.rb', 第38行 def 初始化(客户端: nil, 会话: nil, connection_global_id: nil, 选项: nil) if if 客户端 提高 ArgumentError, '不能同时指定客户端和选项' end if 会话 提高 ArgumentError, '不能同时指定会话和选项' end end if connection_global_id && 会话&。pinned_connection_global_id 提高 ArgumentError, '当会话已固定到连接时,尝试将上下文固定到连接。 ' end @client = 客户端 @session = 会话 @connection_global_id = connection_global_id @options = end |
实例属性详细信息
#客户端⇒对象(只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
59 60 61 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /operation/context.rb', 第59行 def 客户端 @client end |
# options ⇒对象(只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
61 62 63 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /operation/context.rb', 第61行 def @options end |
# session ⇒对象(只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
60 61 62 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /operation/context.rb', 第60行 def 会话 @session end |
实例方法详细信息
# aborting_transaction? ⇒布尔
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
79 80 81 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /operation/context.rb', 第79行 def aborting_transaction? in_transaction? && 会话.aborting_transaction? end |
# any_retry_writes? ⇒布尔
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
91 92 93 |
# File ' 构建/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 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /operation/context.rb', 第75行 def committing_transaction? in_transaction? && 会话.committing_transaction? end |
# connection_global_id ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
63 64 65 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /operation/context.rb', 第63行 def connection_global_id @connection_global_id || 会话&。pinned_connection_global_id end |
#解密? ⇒布尔
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
125 126 127 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /operation/context.rb', 第125行 def 解密? !!客户端&。加密器 end |
# encrypt? ⇒布尔
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
121 122 123 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /operation/context.rb', 第121行 def 加密? 客户端&。加密器&。加密? || false end |
# Encrypter ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
129 130 131 132 133 134 135 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /operation/context.rb', 第129行 def 加密器 if 客户端&。加密器 客户端.加密器 else 提高 错误::内部驱动程序错误, '仅当要执行加密时才应访问加密器' end end |
# in_transaction? ⇒布尔
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
67 68 69 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /operation/context.rb', 第67行 def in_transaction? 会话&。in_transaction? || false end |
#legacy_retry_writes? ⇒布尔
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
87 88 89 |
# File ' 构建/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 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /operation/context.rb', 第83行 def modern_retry_writes? 客户端 && 客户端.[:retry_writes] end |
#重试? ⇒布尔
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
该操作是重试 (true) 还是初始尝试 (false)。
104 105 106 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /operation/context.rb', 第104行 def 重试? !!@is_retry end |
# server_api ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
95 96 97 98 99 100 101 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /operation/context.rb', 第95行 def server_api if 客户端 客户端.[:server_api] elsif [:server_api] end end |
# startup_transaction? ⇒布尔
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
71 72 73 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /operation/context.rb', 第71行 def startup_transaction? 会话&。startup_transaction? || false end |
# with (**opts) ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回一个新的上下文,其中的参数根据提供的参数进行更改。
113 114 115 116 117 118 119 |
# File ' 构建/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 |