クラス: Mongo::Socket::TCP Private
- 継承:
-
ソケット
- オブジェクト
- ソケット
- Mongo::Socket::TCP
- 定義:
- lib/mongo/socket/tcp.rb
Overview
このクラスは、プライベート API の一部です。 このクラスは将来削除または変更される可能性があるため、可能な限り使用しないでください。
TCP ソケットのラッパー。
インスタンス属性の概要を折りたたむ
-
#ホスト= string
readOnly
private
Host 接続するホスト。
-
#port ⇒ Integer
readOnly
private
ポート 接続するポート。
インスタンス メソッドの概要を折りたたむ
-
# 接続します 。詳しくは、 TCP
private
ソケット接続を確立します。
- # connect_with_timeout(sockdr, connect_timeout) = オブジェクト private
- # connect_when_timeout(sockdr) = オブジェクト private
-
#初期化(ホスト、ポート、タイムアウト、ファミリー、オプション = {}) = TCP
コンストラクター
private
新しい TCP ソケットを初期化します。
コンストラクターの詳細
#初期化(ホスト、ポート、タイムアウト、ファミリー、オプション = {}) = TCP
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
新しい TCP ソケットを初期化します。
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# ファイル 'lib/mongo/socket/tcp.rb', 行 45 デフォルト 初期化(ホスト, ポート, タイムアウト, ファミリー, = {}) 発生 ArgumentError, 'ファミリーを指定する必要があります' 場合 ファミリー.nil? スーパー(タイムアウト, ) @host, @port = ホスト, ポート @ファミリー = ファミリー @socket = ::ソケット.新着情報(ファミリー, SOCK_STREAM, 0) begin (@socket) 接続します。 ヘルプ 標準エラー @socket.閉じる 発生 end end |
インスタンス属性の詳細
ホスト= string (読み取り専用)
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
接続するホストを返します。
62 63 64 |
# ファイル 'lib/mongo/socket/tcp.rb', 行 62 デフォルト ホスト @host end |
ポート~整数(読み取り専用)
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
接続するポートを返します。
65 66 67 |
# ファイル 'lib/mongo/socket/tcp.rb', 行 65 デフォルト ポート @port end |
インスタンス メソッドの詳細
# 接続します 。詳しくは、 TCP
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
注:
このメソッドは、ソケットを内部的に設定することによりオブジェクトをミューテーションします。
ソケット接続を確立します。
79 80 81 82 83 84 85 86 87 88 89 90 91 |
# ファイル 'lib/mongo/socket/tcp.rb', 行 79 デフォルト 接続します。 ソケット.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 の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
# ファイル 'lib/mongo/socket/tcp.rb', 行 99 デフォルト 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 の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
94 95 96 |
# ファイル 'lib/mongo/socket/tcp.rb', 行 94 デフォルト connect_Without_timeout(sockaddr) ソケット.接続(sockaddr) end |