Class: Vertx::HttpConnection

Inherits:
Object
  • Object
show all
Defined in:
/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/http_connection.rb

Overview

Represents an HTTP connection.

HTTP/1.x connection provides an limited implementation, the following methods are implemented:

Constant Summary

@@j_api_type =
Object.new

Class Method Summary (collapse)

Instance Method Summary (collapse)

Class Method Details

+ (Boolean) accept?(obj)

Returns:

  • (Boolean)


26
27
28
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/http_connection.rb', line 26

def @@j_api_type.accept?(obj)
  obj.class == HttpConnection
end

+ (Object) j_api_type



35
36
37
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/http_connection.rb', line 35

def self.j_api_type
  @@j_api_type
end

+ (Object) j_class



38
39
40
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/http_connection.rb', line 38

def self.j_class
  Java::IoVertxCoreHttp::HttpConnection.java_class
end

+ (Object) unwrap(obj)



32
33
34
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/http_connection.rb', line 32

def @@j_api_type.unwrap(obj)
  obj.j_del
end

+ (Object) wrap(obj)



29
30
31
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/http_connection.rb', line 29

def @@j_api_type.wrap(obj)
  HttpConnection.new(obj)
end

Instance Method Details

- (void) close

This method returns an undefined value.

Close the connection and all the currently active streams.

An HTTP/2 connection will send a frame before.

Raises:

  • (ArgumentError)


142
143
144
145
146
147
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/http_connection.rb', line 142

def close
  if !block_given?
    return @j_del.java_method(:close, []).call()
  end
  raise ArgumentError, "Invalid arguments when calling close()"
end

- (self) close_handler { ... }

Set a close handler. The handler will get notified when the connection is closed.

Yields:

  • the handler to be notified

Returns:

  • (self)

Raises:

  • (ArgumentError)


131
132
133
134
135
136
137
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/http_connection.rb', line 131

def close_handler
  if block_given?
    @j_del.java_method(:closeHandler, [Java::IoVertxCore::Handler.java_class]).call(Proc.new { yield })
    return self
  end
  raise ArgumentError, "Invalid arguments when calling close_handler()"
end

- (self) exception_handler { ... }

Set an handler called when a connection error happens

Yields:

  • the handler

Returns:

  • (self)

Raises:

  • (ArgumentError)


220
221
222
223
224
225
226
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/http_connection.rb', line 220

def exception_handler
  if block_given?
    @j_del.java_method(:exceptionHandler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(::Vertx::Util::Utils.from_throwable(event)) }))
    return self
  end
  raise ArgumentError, "Invalid arguments when calling exception_handler()"
end

- (Fixnum) get_window_size

Returns the current connection window size or -1 for HTTP/1.x

Returns:

  • (Fixnum)
    the current connection window size or -1 for HTTP/1.x

Raises:

  • (ArgumentError)


42
43
44
45
46
47
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/http_connection.rb', line 42

def get_window_size
  if !block_given?
    return @j_del.java_method(:getWindowSize, []).call()
  end
  raise ArgumentError, "Invalid arguments when calling get_window_size()"
end

- (self) go_away(errorCode = nil, lastStreamId = nil, debugData = nil)

Send a go away frame to the remote endpoint of the connection.

  • a frame is sent to the to the remote endpoint with the errorCode and debugData
  • any stream created after the stream identified by lastStreamId will be closed
  • for an is different than 0 when all the remaining streams are closed this connection will be closed automatically

This is not implemented for HTTP/1.x.

Parameters:

  • errorCode (Fixnum) (defaults to: nil)
    the error code
  • lastStreamId (Fixnum) (defaults to: nil)
    the last stream id
  • debugData (::Vertx::Buffer) (defaults to: nil)
    additional debug data sent to the remote endpoint

Returns:

  • (self)

Raises:

  • (ArgumentError)


75
76
77
78
79
80
81
82
83
84
85
86
87
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/http_connection.rb', line 75

def go_away(errorCode=nil,lastStreamId=nil,debugData=nil)
  if errorCode.class == Fixnum && !block_given? && lastStreamId == nil && debugData == nil
    @j_del.java_method(:goAway, [Java::long.java_class]).call(errorCode)
    return self
  elsif errorCode.class == Fixnum && lastStreamId.class == Fixnum && !block_given? && debugData == nil
    @j_del.java_method(:goAway, [Java::long.java_class,Java::int.java_class]).call(errorCode,lastStreamId)
    return self
  elsif errorCode.class == Fixnum && lastStreamId.class == Fixnum && debugData.class.method_defined?(:j_del) && !block_given?
    @j_del.java_method(:goAway, [Java::long.java_class,Java::int.java_class,Java::IoVertxCoreBuffer::Buffer.java_class]).call(errorCode,lastStreamId,debugData.j_del)
    return self
  end
  raise ArgumentError, "Invalid arguments when calling go_away(#{errorCode},#{lastStreamId},#{debugData})"
end

- (self) go_away_handler { ... }

Set an handler called when a frame is received.

This is not implemented for HTTP/1.x.

Yields:

  • the handler

Returns:

  • (self)

Raises:

  • (ArgumentError)


93
94
95
96
97
98
99
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/http_connection.rb', line 93

def go_away_handler
  if block_given?
    @j_del.java_method(:goAwayHandler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(event != nil ? JSON.parse(event.toJson.encode) : nil) }))
    return self
  end
  raise ArgumentError, "Invalid arguments when calling go_away_handler()"
end

- (String) indicated_server_name

Returns the SNI server name presented during the SSL handshake by the client.

Returns:

  • (String)
    the indicated server name

Raises:

  • (ArgumentError)


256
257
258
259
260
261
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/http_connection.rb', line 256

def indicated_server_name
  if !block_given?
    return @j_del.java_method(:indicatedServerName, []).call()
  end
  raise ArgumentError, "Invalid arguments when calling indicated_server_name()"
end

- (::Vertx::SocketAddress) local_address

Returns the remote address for this connection

Returns:

Raises:

  • (ArgumentError)


238
239
240
241
242
243
244
245
246
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/http_connection.rb', line 238

def local_address
  if !block_given?
    if @cached_local_address != nil
      return @cached_local_address
    end
    return @cached_local_address = ::Vertx::Util::Utils.safe_create(@j_del.java_method(:localAddress, []).call(),::Vertx::SocketAddress)
  end
  raise ArgumentError, "Invalid arguments when calling local_address()"
end

- (self) ping(data = nil) { ... }

Send a frame to the remote endpoint.

This is not implemented for HTTP/1.x.

Parameters:

  • data (::Vertx::Buffer) (defaults to: nil)
    the 8 bytes data of the frame

Yields:

  • an async result handler notified with pong reply or the failure

Returns:

  • (self)

Raises:

  • (ArgumentError)


198
199
200
201
202
203
204
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/http_connection.rb', line 198

def ping(data=nil)
  if data.class.method_defined?(:j_del) && block_given?
    @j_del.java_method(:ping, [Java::IoVertxCoreBuffer::Buffer.java_class,Java::IoVertxCore::Handler.java_class]).call(data.j_del,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil, ar.succeeded ? ::Vertx::Util::Utils.safe_create(ar.result,::Vertx::Buffer) : nil) }))
    return self
  end
  raise ArgumentError, "Invalid arguments when calling ping(#{data})"
end

- (self) ping_handler { ... }

Set an handler notified when a frame is received from the remote endpoint.

This is not implemented for HTTP/1.x.

Yields:

  • the handler to be called when a is received

Returns:

  • (self)

Raises:

  • (ArgumentError)


210
211
212
213
214
215
216
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/http_connection.rb', line 210

def ping_handler
  if block_given?
    @j_del.java_method(:pingHandler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(::Vertx::Util::Utils.safe_create(event,::Vertx::Buffer)) }))
    return self
  end
  raise ArgumentError, "Invalid arguments when calling ping_handler()"
end

- (::Vertx::SocketAddress) remote_address

Returns the remote address for this connection

Returns:

Raises:

  • (ArgumentError)


228
229
230
231
232
233
234
235
236
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/http_connection.rb', line 228

def remote_address
  if !block_given?
    if @cached_remote_address != nil
      return @cached_remote_address
    end
    return @cached_remote_address = ::Vertx::Util::Utils.safe_create(@j_del.java_method(:remoteAddress, []).call(),::Vertx::SocketAddress)
  end
  raise ArgumentError, "Invalid arguments when calling remote_address()"
end

- (Hash) remote_settings

Returns the current remote endpoint settings for this connection - this is not implemented for HTTP/1.x

Returns:

  • (Hash)
    the current remote endpoint settings for this connection - this is not implemented for HTTP/1.x

Raises:

  • (ArgumentError)


174
175
176
177
178
179
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/http_connection.rb', line 174

def remote_settings
  if !block_given?
    return @j_del.java_method(:remoteSettings, []).call() != nil ? JSON.parse(@j_del.java_method(:remoteSettings, []).call().toJson.encode) : nil
  end
  raise ArgumentError, "Invalid arguments when calling remote_settings()"
end

- (self) remote_settings_handler { ... }

Set an handler that is called when remote endpoint Hash are updated.

This is not implemented for HTTP/1.x.

Yields:

  • the handler for remote endpoint settings

Returns:

  • (self)

Raises:

  • (ArgumentError)


185
186
187
188
189
190
191
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/http_connection.rb', line 185

def remote_settings_handler
  if block_given?
    @j_del.java_method(:remoteSettingsHandler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(event != nil ? JSON.parse(event.toJson.encode) : nil) }))
    return self
  end
  raise ArgumentError, "Invalid arguments when calling remote_settings_handler()"
end

- (self) set_window_size(windowSize = nil)

Update the current connection wide window size to a new size.

Increasing this value, gives better performance when several data streams are multiplexed

This is not implemented for HTTP/1.x.

Parameters:

  • windowSize (Fixnum) (defaults to: nil)
    the new window size

Returns:

  • (self)

Raises:

  • (ArgumentError)


55
56
57
58
59
60
61
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/http_connection.rb', line 55

def set_window_size(windowSize=nil)
  if windowSize.class == Fixnum && !block_given?
    @j_del.java_method(:setWindowSize, [Java::int.java_class]).call(windowSize)
    return self
  end
  raise ArgumentError, "Invalid arguments when calling set_window_size(#{windowSize})"
end

- (Hash) settings

Returns the latest server settings acknowledged by the remote endpoint - this is not implemented for HTTP/1.x

Returns:

  • (Hash)
    the latest server settings acknowledged by the remote endpoint - this is not implemented for HTTP/1.x

Raises:

  • (ArgumentError)


149
150
151
152
153
154
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/http_connection.rb', line 149

def settings
  if !block_given?
    return @j_del.java_method(:settings, []).call() != nil ? JSON.parse(@j_del.java_method(:settings, []).call().toJson.encode) : nil
  end
  raise ArgumentError, "Invalid arguments when calling settings()"
end

- (self) shutdown(timeoutMs = nil)

Initiate a connection shutdown, a go away frame is sent and the connection is closed when all current streams will be closed or the timeout is fired.

This is not implemented for HTTP/1.x.

Parameters:

  • timeoutMs (Fixnum) (defaults to: nil)
    the timeout in milliseconds

Returns:

  • (self)

Raises:

  • (ArgumentError)


118
119
120
121
122
123
124
125
126
127
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/http_connection.rb', line 118

def shutdown(timeoutMs=nil)
  if !block_given? && timeoutMs == nil
    @j_del.java_method(:shutdown, []).call()
    return self
  elsif timeoutMs.class == Fixnum && !block_given?
    @j_del.java_method(:shutdown, [Java::long.java_class]).call(timeoutMs)
    return self
  end
  raise ArgumentError, "Invalid arguments when calling shutdown(#{timeoutMs})"
end

- (self) shutdown_handler { ... }

Set an handler called when a frame has been sent or received and all connections are closed.

This is not implemented for HTTP/1.x.

Yields:

  • the handler

Returns:

  • (self)

Raises:

  • (ArgumentError)


105
106
107
108
109
110
111
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/http_connection.rb', line 105

def shutdown_handler
  if block_given?
    @j_del.java_method(:shutdownHandler, [Java::IoVertxCore::Handler.java_class]).call(Proc.new { yield })
    return self
  end
  raise ArgumentError, "Invalid arguments when calling shutdown_handler()"
end

- (true, false) ssl?

Returns true if this Vertx::HttpConnection is encrypted via SSL/TLS.

Returns:

Raises:

  • (ArgumentError)


248
249
250
251
252
253
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/http_connection.rb', line 248

def ssl?
  if !block_given?
    return @j_del.java_method(:isSsl, []).call()
  end
  raise ArgumentError, "Invalid arguments when calling ssl?()"
end

- (self) update_settings(settings = nil) { ... }

Send to the remote endpoint an update of this endpoint settings

The completionHandler will be notified when the remote endpoint has acknowledged the settings.

This is not implemented for HTTP/1.x.

Parameters:

  • settings (Hash) (defaults to: nil)
    the new settings

Yields:

  • the handler notified when the settings have been acknowledged by the remote endpoint

Returns:

  • (self)

Raises:

  • (ArgumentError)


163
164
165
166
167
168
169
170
171
172
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/http_connection.rb', line 163

def update_settings(settings=nil)
  if settings.class == Hash && !block_given?
    @j_del.java_method(:updateSettings, [Java::IoVertxCoreHttp::Http2Settings.java_class]).call(Java::IoVertxCoreHttp::Http2Settings.new(::Vertx::Util::Utils.to_json_object(settings)))
    return self
  elsif settings.class == Hash && block_given?
    @j_del.java_method(:updateSettings, [Java::IoVertxCoreHttp::Http2Settings.java_class,Java::IoVertxCore::Handler.java_class]).call(Java::IoVertxCoreHttp::Http2Settings.new(::Vertx::Util::Utils.to_json_object(settings)),(Proc.new { |ar| yield(ar.failed ? ar.cause : nil) }))
    return self
  end
  raise ArgumentError, "Invalid arguments when calling update_settings(#{settings})"
end