クラス: Mongo::Socket::TCP Private

継承:
Mongo::Socket すべて表示
定義:
lib/mongo/socket/tcp.rb

Overview

このクラスは、プライベート API の一部です。 このクラスは将来削除または変更される可能性があるため、可能な限り使用しないでください。

TCP ソケットのラッパー。

以来

  • 2.0.0

定数の概要

Mongo::Socketから継承された定数

SSL_ERRORTIME_ERRORTIMEOUT_PACKWRITE_CPUK_SIZE

インスタンス属性の概要を折りたたむ

Mongo::Socketから継承された属性

#ファミリー、 最初のオプションソケットタイムアウト

インスタンス メソッドの概要を折りたたむ

Mongo::Socketから継承されたメソッド

#alive?#close#接続可能か?接続_アドレス接続_生成、 の場合#は を取得し、 # モニターは?読み取り番号読み取りバイト数概要書込み

コンストラクターの詳細

#初期化(ホスト、ポート、タイムアウト、ファミリー、オプション = {}) = TCP

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

新しい TCP ソケットを初期化します。

例:

TCP ソケットを作成します。

TCP.new('::1', 27017, 30, Socket::PF_INET)
TCP.new('127.0.0.1', 27017, 30, Socket::PF_INET)

パラメーター:

  • ホスト ( string )

    ホスト名または IP アドレス。

  • ポート (整数)

    ポート番号。

  • タイムアウト 浮動小数

    ソケット タイムアウト値。

  • ファミリー (整数)

    ソケットファミリー。

  • options ハッシュ (デフォルトは{}です)

    オプション。

オプション ハッシュ( options ):

  • :connect_timeout 浮動小数

    接続タイムアウト。

  • : connection_address アドレス

    このソケットを作成した接続のアドレス。

  • : connection_生成 整数

    このソケットを作成した接続の生成(非モニタリング接続の場合)。

  • :mongos true | false

    このソケットはモニタリング接続によって作成されたかどうか。

以来

  • 2.0.0



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# ファイル 'lib/mongo/socket/tcp.rb', 行 48

デフォルト 初期化(ホスト, ポート, タイムアウト, ファミリー, options = {})
  場合 ファミリー.nil?
    発生 ArgumentError, 'ファミリーを指定する必要があります'
  end
  スーパー(タイムアウト, options)
  @host, @port = ホスト, ポート
  @ファミリー = ファミリー
  @socket = ::ソケット.新着情報(ファミリー, SOCK_STREAM, 0)
  begin
    set_socket_options(@socket)
    接続します。
  ヘルプ
    @socket.閉じる
    発生
  end
end

インスタンス属性の詳細

ホスト= string (読み取り専用)

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

接続するホストを返します。

次の値を返します。

  • ( string )

    ホスト 接続するホスト。

以来

  • 2.0.0



66
67
68
# ファイル 'lib/mongo/socket/tcp.rb', 行 66

デフォルト ホスト
  @host
end

ポート整数(読み取り専用)

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

接続するポートを返します。

次の値を返します。

  • (整数)

    ポート 接続するポート。

以来

  • 2.0.0



69
70
71
# ファイル 'lib/mongo/socket/tcp.rb', 行 69

デフォルト ポート
  @port
end

インスタンス メソッドの詳細

# 接続します 。詳しくは、 TCP

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

注:

このメソッドは、ソケットを内部的に設定することによりオブジェクトをミューテーションします。

ソケット接続を確立します。

例:

ソケットを接続します。

sock.connect!

次の値を返します。

  • (TCP)

    接続されたソケットインスタンス。

以来

  • 2.0.0



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 = options[: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 の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

以来

  • 2.0.0



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 の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

以来

  • 2.0.0



98
99
100
# ファイル 'lib/mongo/socket/tcp.rb', 行 98

デフォルト connect_Without_timeout(sockaddr)
  ソケット.接続(sockaddr)
end