类:Mongo::Socket Private
- 继承:
-
对象
- 对象
- Mongo::Socket
- 包括:
- Socket::Constants
- 定义于:
- lib/ Mongo/socket.rb ,
lib/ Mongo/socket/ssl.rb,
lib/ Mongo/socket/tcp.rb,
lib/ Mongo/socket/unix.rb,
lib/ Mongo/socket/ocsp_cache.rb,
lib/ Mongo/socket/ocsp_verifier.rb
Overview
此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。
提供有关套接字的附加数据以供驱动程序使用。
在命名空间下定义
模块: OcspCache 类: OcspVerifier , SSL , TCP , Unix
常量摘要折叠
- SSL_ERROR =
此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。
已弃用。TLS 相关异常的错误消息。
“ MongoDB 可能未配置 TLS 支持”.冻结
- TIMEOUT_ERROR =
此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。
已弃用。有关套接字调用超时的错误消息。
'套接字请求超时'.冻结
- TIMEOUT_PACK =
此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。
用于超时的包指令。
' l_ 2 '.冻结
- WRITE_CHUNK_SIZE =
此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。
以该大小的数据段将数据写入套接字。
65536
实例属性摘要折叠
-
# family ⇒ 整数
只读
private
家庭托管家庭的类型。
-
# options ⇒ 哈希
只读
private
选项。
-
#socket ⇒ Socket
只读
private
套接字 包装的套接字。
-
# timeout ="Float"
只读
private
超时 套接字超时。
实例方法摘要折叠
-
#还活着? ⇒ true, false
已弃用
private
已弃用。
使用#connectable? 在连接上。
-
# close ⇒ true
private
关闭套接字。
- #可连接? ⇒ true 已弃用 private 已弃用。
-
# connection_address ⇒ 地址
private
创建此套接字的连接地址。
-
# connection_Generation ="Integer"(整数)
private
创建此套接字的连接(针对非监控连接)的生成。
-
# eof? ⇒ 布尔
private
测试此套接字是否已到达 EOF。
-
#gets (*args) ⇒ 对象
private
委托访问底层套接字。
-
#initialize (timeout, options) ⇒ 套接字
构造函数
private
初始化通用套接字属性。
-
#监控? ⇒ true | false
private
此套接字是否由监控连接创建。
-
# read (length, socket_timeout: nil, timeout: nil) ⇒ 对象
private
将从套接字读取指定字节数的所有数据。
-
# readbyte ⇒ 对象
private
从套接字读取单个字节。
-
#摘要⇒ string
private
用于调试的套接字摘要,用于人类可读。
-
# 写入 (*args, timeout: nil) ⇒ Integer
private
将数据写入套接字实例。
构造函数详情
#initialize (timeout, options) ⇒套接字
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
初始化通用套接字属性。
69 70 71 72 |
# File 'lib/ Mongo/socket.rb', 第 69 行 def 初始化(超时, ) @timeout = 超时 @options = end |
实例属性详细信息
# family ⇒整数(只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回 family 主机族的类型。
75 76 77 |
# File 'lib/ Mongo/socket.rb', 第 75 行 def 家庭情况 @family end |
# options ⇒哈希(只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回 选项。
81 82 83 |
# File 'lib/ Mongo/socket.rb', 第 81 行 def @options end |
# socket ⇒套接字(只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回 socket 包装的套接字。
78 79 80 |
# File 'lib/ Mongo/socket.rb', 第 78 行 def 套接字 @socket end |
# timeout ⇒浮点(只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回 timeout 套接字超时时间。
84 85 86 |
# File 'lib/ Mongo/socket.rb', 第 84 行 def 超时 @timeout end |
实例方法详细信息
#还活着? ⇒ true , false
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
使用#connectable? 在连接上。
套接字连接是否处于活动状态?
134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 |
# File 'lib/ Mongo/socket.rb', 第 134 行 def alive? sock_arr = [ @socket ] if Kernel::SELECT(sock_arr, nil, sock_arr, 0) # eof?调用应该立即返回,因为 select # 表示套接字可读。 但是,如果 @socket 是 TLS # socket, eof?无论如何都可以阻塞 - 请参阅 RUBY- 2140 。 开始 超时.超时(0.1) do eof? end 救援 ::超时::错误 true end else true end end |
# close ⇒ true
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
关闭套接字。
160 161 162 163 164 165 166 167 168 169 170 |
# File 'lib/ Mongo/socket.rb', 第 160 行 def 关闭 开始 # 有时,关闭调用可能会挂起很长时间 ::超时.超时(5) do @socket.关闭 end 救援 # 静默所有错误 end true end |
#可连接? ⇒ true
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
仅为了向后兼容,请勿使用。
260 261 262 |
# File 'lib/ Mongo/socket.rb', 第 260 行 def 可连接? true end |
# connection_address ⇒地址
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回创建此套接字的连接的地址。
89 90 91 |
# File 'lib/ Mongo/socket.rb', 第 89 行 def connection_address [:connection_address] end |
# connection_Generation =" Integer "(整数)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回创建此套接字的连接(对于非监控连接)的生成。
97 98 99 |
# File 'lib/ Mongo/socket.rb', 第 97 行 def connection_Generation [:connection_Generation] end |
# eof? ⇒布尔
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
测试此套接字是否已到达 EOF。 主要用于活性检查。
249 250 251 252 253 |
# File 'lib/ Mongo/socket.rb', 第 249 行 def eof? @socket.eof? 救援 IOError, SystemCallError true end |
#gets (*args) ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
委托访问底层套接字。
182 183 184 185 186 |
# File 'lib/ Mongo/socket.rb', 第 182 行 def 获取(*args) map_Exceptions do @socket.获取(*args) end end |
#监控? ⇒ true | false
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回此套接字是否由监控连接创建。
105 106 107 |
# File 'lib/ Mongo/socket.rb', 第 105 行 def 监控? !![:monitor] end |
# read (length, socket_timeout: nil, timeout: nil) ⇒ 对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
将从套接字读取指定字节数的所有数据。 如果没有返回数据,则会引发异常。
205 206 207 208 209 210 211 212 213 214 |
# File 'lib/ Mongo/socket.rb', 第 205 行 def 读(长度, socket_timeout: nil, timeout: nil) if !socket_timeout.nil? && !超时.nil? 提高 ArgumentError, ' 不能同时设立timeout 和 socket_timeout ' end if !socket_timeout.nil? || 超时.nil? read_ without_timeout(长度, socket_timeout) else read_with_timeout(长度, 超时) end end |
# readbyte ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
从套接字读取单个字节。
224 225 226 227 228 |
# File 'lib/ Mongo/socket.rb', 第 224 行 def readbyte map_Exceptions do @socket.readbyte end end |
#摘要⇒ string
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回用于调试的套接字的人类可读摘要。
112 113 114 115 116 117 118 119 120 121 122 123 124 |
# File 'lib/ Mongo/socket.rb', 第 112 行 def 总结 fileno = @socket&。fileno 救援 ' <no socket> ' || ' <no socket> ' if 监控? 指示器 = if [:push] ' pm ' else ' m ' end " #{ connection_address } ; #{ subject } ;fd= #{ fileno } " else " #{ connection_address } ;c: #{ connection_Generation } ;fd= #{ fileno } " end end |
# 写入 (*args, timeout: nil) ⇒ Integer
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
将数据写入套接字实例。
240 241 242 243 244 |
# File 'lib/ Mongo/socket.rb', 第 240 行 def 写(*args, timeout: nil) map_Exceptions do do_write(*args, timeout: 超时) end end |