クラス: Mongo::Socket::TCP Private
- 継承:
-
Mongo::Socket
- オブジェクト
- Mongo::Socket
- Mongo::Socket::TCP
- 定義:
- lib/mongo/socket/tcp.rb
Overview
このクラスは、プライベート API の一部です。 このクラスは将来削除または変更される可能性があるため、可能な限り使用しないでください。
TCP ソケットのラッパー。
定数の概要
Mongo::Socketから継承された定数
SSL_ERROR 、 TIME_ERROR 、 TIMEOUT_PACK 、 WRITE_CPUK_SIZE
インスタンス属性の概要を折りたたむ
-
#ホスト= string
readOnly
private
Host 接続するホスト。
-
#port ⇒ Integer
readOnly
private
ポート 接続するポート。
Mongo::Socketから継承された属性
インスタンス メソッドの概要を折りたたむ
-
# 接続します 。詳しくは、 TCP
private
ソケット接続を確立します。
- # connect_with_timeout(sockdr, connect_timeout) = オブジェクト private
- # connect_when_timeout(sockdr) = オブジェクト private
-
#初期化(ホスト、ポート、タイムアウト、ファミリー、オプション = {}) = TCP
コンストラクター
private
新しい TCP ソケットを初期化します。
Mongo::Socketから継承されたメソッド
#alive? 、 #close 、 #接続可能か? 、接続_アドレス、接続_生成、 の場合、 #は を取得し、 # モニターは? 、読み取り番号、読み取りバイト数、概要、書込み
コンストラクターの詳細
#初期化(ホスト、ポート、タイムアウト、ファミリー、オプション = {}) = TCP
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
新しい TCP ソケットを初期化します。
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# ファイル 'lib/mongo/socket/tcp.rb', 行 48 デフォルト 初期化(ホスト, ポート, タイムアウト, ファミリー, = {}) 場合 ファミリー.nil? 発生 ArgumentError, 'ファミリーを指定する必要があります' end スーパー(タイムアウト, ) @host, @port = ホスト, ポート @ファミリー = ファミリー @socket = ::ソケット.新着情報(ファミリー, SOCK_STREAM, 0) begin (@socket) 接続します。 ヘルプ @socket.閉じる 発生 end end |
インスタンス属性の詳細
ホスト= string (読み取り専用)
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
接続するホストを返します。
66 67 68 |
# ファイル 'lib/mongo/socket/tcp.rb', 行 66 デフォルト ホスト @host end |
ポート~整数(読み取り専用)
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
接続するポートを返します。
69 70 71 |
# ファイル 'lib/mongo/socket/tcp.rb', 行 69 デフォルト ポート @port end |
インスタンス メソッドの詳細
# 接続します 。詳しくは、 TCP
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
このメソッドは、ソケットを内部的に設定することによりオブジェクトをミューテーションします。
ソケット接続を確立します。
83 84 85 86 87 88 89 90 91 92 93 94 95 |
# ファイル 'lib/mongo/socket/tcp.rb', 行 83 デフォルト 接続します。 ソケット.setopt(IPPROTO_TCP, TCP_NODELAY, 1) sockaddr = ::ソケット.pack_sockaddr_in(ポート, ホスト) connect_timeout = [:connect_timeout] map_例外 行う 場合 connect_timeout & & connect_timeout != 0 connect_with_timeout(sockaddr, connect_timeout) else connect_Without_timeout(sockaddr) end end 自己 end |
# connect_with_timeout(sockdr, connect_timeout) = オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# ファイル 'lib/mongo/socket/tcp.rb', 行 103 デフォルト connect_with_timeout(sockaddr, connect_timeout) 場合 connect_timeout <= 0 発生 エラー::SocketTimeoutError, 「ソケットは接続に約 秒をかかりました」 end deadline = Utils.MongoDB_time + connect_timeout begin ソケット.connect_nonlock(sockaddr) ヘルプ IO::WaitWritable [select_timeout] = deadline - Utils.MongoDB_time 場合 [select_timeout] <= 0 発生 エラー::SocketTimeoutError, 「ソケットは接続に約 秒をかかりました」 end 場合 IO.選択する(nil, [ソケット], nil, [select_timeout]) RETRY else ソケット.閉じる 発生 エラー::SocketTimeoutError, 「ソケットは接続に約 秒をかかりました」 end ヘルプ Errno::ISCONN # ソケットは接続されており、これ以上の操作はありません end end |
# connect_when_timeout(sockdr) = オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
98 99 100 |
# ファイル 'lib/mongo/socket/tcp.rb', 行 98 デフォルト connect_Without_timeout(sockaddr) ソケット.接続(sockaddr) end |