类:Mongo::Server::Description::Features

继承:
对象
  • 对象
显示全部
定义于:
lib/ Mongo/ 服务器/description/features.rb

Overview

围绕特定服务器支持的功能定义行为。

由于:

  • 2.0.0

常量摘要折叠

MAPPINGS =

功能列表及其所在的传输协议版本。

协议版本映射到服务器版本,如下所示:

  • 8 => 4.2
  • 9 => 4.4
  • 13 => 5.0
  • 14 => 5.1
  • 17 => 6.0

由于:

  • 2.0.0

{
  merge_out_on_secondary: 13,
  get_more_comment: 9,
  retryable_write_error_label: 9,
  commit_quorum: 9,
}.冻结
SERVER_TOO_OLD =

如果服务器对于此版本的驱动程序来说太旧,则会出现错误消息。

由于:

  • 2.5.0

'服务器 at (%s) reports wire version (%s), but this version of the Ruby 驱动程序 ' +
'至少需要 (%s)。'
SERVER_DEPRECATED =

如果服务器版本已弃用,则会出现警告消息。

由于:

  • 2.0.0

'Server at (%s) reports wire version (%s), but support for that wire version ' \
'is deprecated and will be removed in a future version of the Ruby 驱动程序. ' \
'Please upgrade your MongoDB server to a newer version soon.'
DRIVER_TOO_OLD =

如果驱动程序对于服务器版本来说太旧,则会出现错误消息。

由于:

  • 2.5.0

'Server at (%s) requires wire version (%s), but this version of the Ruby 驱动程序 '' +
'最多仅支持 (%s)。'
EMPTY_RANGE =

空范围常量,用于 DEPRECATED_WIRE_VERSIONS。

由于:

  • 2.0.0

(0...0).冻结
DRIVER_WIRE_VERSIONS =

此版本的驱动程序支持的传输协议版本。

由于:

  • 2.0.0

8..25
DEPRECATED_WIRE_VERSIONS =

此版本的驱动程序中已弃用的传输协议版本。将来将删除对这些版本的支持。

如果有多个当前已弃用的传输版本,则应将其设立为这些版本的范围。

如果当前只有一个已弃用的传输版本,则应将其设立为最小值和最大值相同的范围。

如果当前没有已弃用的连接版本,则应将其设立为空范围(例如 EMPTY_RANGE 常量)。

由于:

  • 2.0.0

EMPTY_RANGE

实例属性摘要折叠

实例方法摘要折叠

构造函数详情

#initialize (server_wire_versions,address = nil) ⇒功能

初始化功能。

例子:

初始化功能。

Features.new(0..3)

参数:

  • server_wire_versions (范围)

    服务器支持传输版本。

引发:

  • ( ArgumentError )

由于:

  • 2.0.0



114
115
116
117
118
119
120
121
122
123
124
# File 'lib/ Mongo/ 服务器/description/features.rb', line 114

def 初始化(server_wire_versions, 地址 = nil)
  提高 ArgumentError, " server_wire_versions's min is nil " if server_wire_versions.min.nil?
  提高 ArgumentError, " server_wire_versions's max is nil " if server_wire_versions.Max.nil?

  @server_wire_versions = server_wire_versions
  @address = 地址

  return 除非 mongo::Lint.已启用?

  冻结
end

实例属性详细信息

# server_wire_versions范围(只读)

返回 server_wire_versions 服务器支持的传输版本。

返回:

  • (范围)

    server_wire_versions 服务器支持的传输版本。

由于:

  • 2.0.0



103
104
105
# File 'lib/ Mongo/ 服务器/description/features.rb', line 103

def server_wire_versions
  @server_wire_versions
end

实例方法详细信息

# check_driver_support!对象

检查驱动程序支持的传输版本范围和服务器传输版本范围之间是否存在重叠。还要检查服务器是否使用已弃用的传输版本。

引发:

由于:

  • 2.0.0



132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'lib/ Mongo/ 服务器/description/features.rb', line 132

def check_driver_support!
  if DEPRECATED_WIRE_VERSIONS.包括?(@server_wire_versions.Max)
    功能 = "wire_version: #{解决 } "
    mongo::弃用.WARN(功能, format(SERVER_DEPRECATED, @address, @server_wire_versions.Max))

  elsif DRIVER_WIRE_VERSIONS.min > @server_wire_versions.Max
    提高 错误::不支持的功能.new(format(SERVER_TOO_OLD, @address, @server_wire_versions.Max,
                                                DRIVER_WIRE_VERSIONS.min))

  elsif DRIVER_WIRE_VERSIONS.Max < @server_wire_versions.min
    提高 错误::不支持的功能.new(format(DRIVER_TOO_OLD, @address, @server_wire_versions.min,
                                                DRIVER_WIRE_VERSIONS.Max))
  end
end