类: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 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。
以该大小的数据段将数据写入套接字。
65 _ 536
实例属性摘要折叠
-
# 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
此套接字是否由监控连接创建。
-
#pipe ⇒ IO
private
从套接字读取时,在 select 系统调用期间进行监听。
-
# read (length, socket_timeout: nil, timeout: nil) ⇒ 对象
private
将从套接字读取指定字节数的所有数据。
-
# readbyte ⇒ 对象
private
从套接字读取单个字节。
-
#摘要⇒ string
private
用于调试的套接字摘要,用于人类可读。
-
# 写入 (*args, timeout: nil) ⇒ Integer
private
将数据写入套接字实例。
构造函数详情
#initialize (timeout, options) ⇒套接字
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
初始化通用套接字属性。
70 71 72 73 |
# File 'lib/ Mongo/socket.rb', 第 70 行 def 初始化(超时, ) @timeout = 超时 @options = end |
实例属性详细信息
# family ⇒整数(只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回 family 主机族的类型。
76 77 78 |
# File 'lib/ Mongo/socket.rb', 第 76 行 def 家庭情况 @family end |
# options ⇒哈希(只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回 选项。
82 83 84 |
# File 'lib/ Mongo/socket.rb', 第 82 行 def @options end |
# socket ⇒套接字(只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回 socket 包装的套接字。
79 80 81 |
# File 'lib/ Mongo/socket.rb', 第 79 行 def 套接字 @socket end |
# timeout ⇒浮点(只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回 timeout 套接字超时时间。
85 86 87 |
# File 'lib/ Mongo/socket.rb', 第 85 行 def 超时 @timeout end |
实例方法详细信息
#还活着? ⇒ true , false
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
使用#connectable? 在连接上。
套接字连接是否处于活动状态?
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 |
# File 'lib/ Mongo/socket.rb', 第 146 行 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 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
关闭套接字。
172 173 174 175 176 177 178 179 180 181 182 |
# File 'lib/ Mongo/socket.rb', 第 172 行 def 关闭 开始 # 有时,关闭调用可能会挂起很长时间 ::超时.超时(5) do @socket&。关闭 end 救援 StandardError # 静默所有错误 end true end |
#可连接? ⇒ true
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
仅为了向后兼容,请勿使用。
271 272 273 |
# File 'lib/ Mongo/socket.rb', 第 271 行 def 可连接? true end |
# connection_address ⇒地址
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回创建此套接字的连接的地址。
90 91 92 |
# File 'lib/ Mongo/socket.rb', 第 90 行 def connection_address [:connection_address] end |
# connection_Generation =" Integer "(整数)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回创建此套接字的连接(对于非监控连接)的生成。
98 99 100 |
# File 'lib/ Mongo/socket.rb', 第 98 行 def connection_Generation [:connection_Generation] end |
# eof? ⇒布尔
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
测试此套接字是否已到达 EOF。 主要用于活性检查。
260 261 262 263 264 |
# File 'lib/ Mongo/socket.rb', 第 260 行 def eof? @socket.eof? 救援 IOError, SystemCallError true end |
#gets (*args) ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
委托访问底层套接字。
194 195 196 197 198 |
# File 'lib/ Mongo/socket.rb', 第 194 行 def 获取(*args) map_Exceptions do @socket.获取(*args) end end |
#监控? ⇒ true | false
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回此套接字是否由监控连接创建。
106 107 108 |
# File 'lib/ Mongo/socket.rb', 第 106 行 def 监控? !![:monitor] end |
#pipe ⇒ IO
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
从套接字读取时,在 select 系统调用期间进行监听。
113 114 115 |
# File 'lib/ Mongo/socket.rb', 第 113 行 def 管道 [:pipe] end |
# read (length, socket_timeout: nil, timeout: nil) ⇒ 对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
将从套接字读取指定字节数的所有数据。 如果没有返回数据,则会引发异常。
217 218 219 220 221 222 223 224 225 |
# File 'lib/ Mongo/socket.rb', 第 217 行 def 读(长度, socket_timeout: nil, timeout: nil) 提高 ArgumentError, ' 不能同时设立timeout 和 socket_timeout ' if !socket_timeout.nil? && !超时.nil? if !socket_timeout.nil? || 超时.nil? read_ without_timeout(长度, socket_timeout) else read_with_timeout(长度, 超时) end end |
# readbyte ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
从套接字读取单个字节。
235 236 237 238 239 |
# File 'lib/ Mongo/socket.rb', 第 235 行 def readbyte map_Exceptions do @socket.readbyte end end |
#摘要⇒ string
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回用于调试的套接字的人类可读摘要。
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
# File 'lib/ Mongo/socket.rb', 第 120 行 def 总结 fileno = 开始 @socket&。fileno 救援 StandardError ' <no socket> ' end 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 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
将数据写入套接字实例。
251 252 253 254 255 |
# File 'lib/ Mongo/socket.rb', 第 251 行 def 写(*args, timeout: nil) map_Exceptions do do_write(*args, timeout: 超时) end end |