Class: Vertx::HttpServerResponse
- Inherits:
-
Object
- Object
- Vertx::HttpServerResponse
- Includes:
- WriteStream
- Defined in:
- /Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb
Overview
An instance of this is created and associated to every instance of HttpServerRequest that.
It allows the developer to control the HTTP response that is sent back to the client for a particular HTTP request.
It contains methods that allow HTTP headers and trailers to be set, and for a body to be written out to the response.
It also allows files to be streamed by the kernel directly from disk to the outgoing HTTP connection, bypassing user space altogether (where supported by the underlying operating system). This is a very efficient way of serving files from the server since buffers do not have to be read one by one from the file and written to the outgoing socket.
It implements WriteStream so it can be used with Pump to pump data with flow control.
Constant Summary
- @@j_api_type =
Object.new
Class Method Summary (collapse)
- + (Boolean) accept?(obj)
- + (Object) j_api_type
- + (Object) j_class
- + (Object) unwrap(obj)
- + (Object) wrap(obj)
Instance Method Summary (collapse)
-
- (self) body_end_handler { ... }
Provides a handler that will be called after the last part of the body is written to the wire.
-
- (Fixnum) bytes_written
The total number of bytes written for the body of the response.
-
- (true, false) chunked?
Is the response chunked?.
-
- (void) close
Close the underlying TCP connection corresponding to the request.
-
- (self) close_handler { ... }
Set a close handler for the response.
-
- (true, false) closed?
Has the underlying TCP connection corresponding to the request already been closed?.
- - (self) drain_handler { ... }
-
- (void) end(param_1 = nil, param_2 = nil)
Same as #end but writes a String with the specified encoding before ending the response.
-
- (true, false) ended?
Has the response already ended?.
- - (self) exception_handler { ... }
-
- (Fixnum) get_status_code
The HTTP status code of the response.
-
- (String) get_status_message
The HTTP status message of the response.
-
- (true, false) head_written?
Have the headers for the response already been written?.
-
- (::Vertx::MultiMap) headers
The HTTP headers.
-
- (self) headers_end_handler { ... }
Provide a handler that will be called just before the headers are written to the wire.
-
- (self) push(param_1 = nil, param_2 = nil, param_3 = nil, param_4 = nil)
Push a response to the client.
-
- (self) put_header(name = nil, value = nil)
Put an HTTP header.
-
- (self) put_trailer(name = nil, value = nil)
Put an HTTP trailer.
-
- (void) reset(code = nil)
Reset this HTTP/2 stream with the error code.
-
- (self) send_file(filename = nil, offset = nil, length = nil) { ... }
Like #send_file but providing a handler which will be notified once the file has been completely written to the wire.
-
- (self) set_chunked(chunked = nil)
If chunked is true, this response will use HTTP chunked encoding, and each call to write to the body will correspond to a new HTTP chunk sent on the wire.
-
- (self) set_status_code(statusCode = nil)
Set the status code.
-
- (self) set_status_message(statusMessage = nil)
Set the status message.
- - (self) set_write_queue_max_size(maxSize = nil)
-
- (Fixnum) stream_id
The id of the stream of this response, for HTTP/1.x.
-
- (::Vertx::MultiMap) trailers
The HTTP trailers.
-
- (self) write(param_1 = nil, param_2 = nil)
Write a String to the response body, encoded using the encoding enc.
-
- (self) write_continue
Used to write an interim 100 Continue response to signify that the client should send the rest of the request.
-
- (self) write_custom_frame(param_1 = nil, param_2 = nil, param_3 = nil)
Write an HTTP/2 frame to the response, allowing to extend the HTTP/2 protocol.
-
- (true, false) write_queue_full?
This will return true if there are more bytes in the write queue than the value set using #set_write_queue_max_size.
Class Method Details
+ (Boolean) accept?(obj)
39 40 41 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 39 def @@j_api_type.accept?(obj) obj.class == HttpServerResponse end |
+ (Object) j_api_type
48 49 50 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 48 def self.j_api_type @@j_api_type end |
+ (Object) j_class
51 52 53 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 51 def self.j_class Java::IoVertxCoreHttp::HttpServerResponse.java_class end |
+ (Object) unwrap(obj)
45 46 47 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 45 def @@j_api_type.unwrap(obj) obj.j_del end |
+ (Object) wrap(obj)
42 43 44 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 42 def @@j_api_type.wrap(obj) HttpServerResponse.new(obj) end |
Instance Method Details
- (self) body_end_handler { ... }
333 334 335 336 337 338 339 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 333 def body_end_handler if block_given? @j_del.java_method(:bodyEndHandler, [Java::IoVertxCore::Handler.java_class]).call(Proc.new { yield }) return self end raise ArgumentError, "Invalid arguments when calling body_end_handler()" end |
- (Fixnum) bytes_written
341 342 343 344 345 346 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 341 def bytes_written if !block_given? return @j_del.java_method(:bytesWritten, []).call() end raise ArgumentError, "Invalid arguments when calling bytes_written()" end |
- (true, false) chunked?
167 168 169 170 171 172 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 167 def chunked? if !block_given? return @j_del.java_method(:isChunked, []).call() end raise ArgumentError, "Invalid arguments when calling chunked?()" end |
- (void) close
This method returns an undefined value.
Close the underlying TCP connection corresponding to the request.
289 290 291 292 293 294 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 289 def close if !block_given? return @j_del.java_method(:close, []).call() end raise ArgumentError, "Invalid arguments when calling close()" end |
- (self) close_handler { ... }
219 220 221 222 223 224 225 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 219 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 |
- (true, false) closed?
303 304 305 306 307 308 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 303 def closed? if !block_given? return @j_del.java_method(:closed, []).call() end raise ArgumentError, "Invalid arguments when calling closed?()" end |
- (self) drain_handler { ... }
104 105 106 107 108 109 110 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 104 def drain_handler if block_given? @j_del.java_method(:drainHandler, [Java::IoVertxCore::Handler.java_class]).call(Proc.new { yield }) return self end raise ArgumentError, "Invalid arguments when calling drain_handler()" end |
- (void) end - (void) end(chunk) - (void) end(chunk) - (void) end(chunk, enc)
This method returns an undefined value.
Same as #end but writes a String with the specified encoding before ending the response.
246 247 248 249 250 251 252 253 254 255 256 257 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 246 def end(param_1=nil,param_2=nil) if !block_given? && param_1 == nil && param_2 == nil return @j_del.java_method(:end, []).call() elsif param_1.class == String && !block_given? && param_2 == nil return @j_del.java_method(:end, [Java::java.lang.String.java_class]).call(param_1) elsif param_1.class.method_defined?(:j_del) && !block_given? && param_2 == nil return @j_del.java_method(:end, [Java::IoVertxCoreBuffer::Buffer.java_class]).call(param_1.j_del) elsif param_1.class == String && param_2.class == String && !block_given? return @j_del.java_method(:end, [Java::java.lang.String.java_class,Java::java.lang.String.java_class]).call(param_1,param_2) end raise ArgumentError, "Invalid arguments when calling end(#{param_1},#{param_2})" end |
- (true, false) ended?
296 297 298 299 300 301 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 296 def ended? if !block_given? return @j_del.java_method(:ended, []).call() end raise ArgumentError, "Invalid arguments when calling ended?()" end |
- (self) exception_handler { ... }
64 65 66 67 68 69 70 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 64 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_status_code
200
representing OK
.
112 113 114 115 116 117 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 112 def get_status_code if !block_given? return @j_del.java_method(:getStatusCode, []).call() end raise ArgumentError, "Invalid arguments when calling get_status_code()" end |
- (String) get_status_message
130 131 132 133 134 135 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 130 def if !block_given? return @j_del.java_method(:getStatusMessage, []).call() end raise ArgumentError, "Invalid arguments when calling get_status_message()" end |
- (true, false) head_written?
310 311 312 313 314 315 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 310 def head_written? if !block_given? return @j_del.java_method(:headWritten, []).call() end raise ArgumentError, "Invalid arguments when calling head_written?()" end |
- (::Vertx::MultiMap) headers
174 175 176 177 178 179 180 181 182 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 174 def headers if !block_given? if @cached_headers != nil return @cached_headers end return @cached_headers = ::Vertx::Util::Utils.safe_create(@j_del.java_method(:headers, []).call(),::Vertx::MultiMap) end raise ArgumentError, "Invalid arguments when calling headers()" end |
- (self) headers_end_handler { ... }
This provides a hook allowing you to add any more headers or do any more operations before this occurs.
320 321 322 323 324 325 326 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 320 def headers_end_handler if block_given? @j_del.java_method(:headersEndHandler, [Java::IoVertxCore::Handler.java_class]).call(Proc.new { yield }) return self end raise ArgumentError, "Invalid arguments when calling headers_end_handler()" end |
- (self) push(method, path, handler) { ... } - (self) push(method, host, path, handler) { ... } - (self) push(method, path, headers, handler) { ... } - (self) push(method, host, path, headers, handler) { ... }
handler
will be notified with a success when the push can be sent and with
a failure when the client has disabled push or reset the push before it has been sent.
The handler
may be queued if the client has reduced the maximum number of streams the server can push
concurrently.
Push can be sent only for peer initiated streams and if the response is not ended.
384 385 386 387 388 389 390 391 392 393 394 395 396 397 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 384 def push(param_1=nil,param_2=nil,param_3=nil,param_4=nil) if param_1.class == Symbol && param_2.class == String && block_given? && param_3 == nil && param_4 == nil @j_del.java_method(:push, [Java::IoVertxCoreHttp::HttpMethod.java_class,Java::java.lang.String.java_class,Java::IoVertxCore::Handler.java_class]).call(Java::IoVertxCoreHttp::HttpMethod.valueOf(param_1.to_s),param_2,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil, ar.succeeded ? ::Vertx::Util::Utils.safe_create(ar.result,::Vertx::HttpServerResponse) : nil) })) return self elsif param_1.class == Symbol && param_2.class == String && param_3.class == String && block_given? && param_4 == nil return ::Vertx::Util::Utils.safe_create(@j_del.java_method(:push, [Java::IoVertxCoreHttp::HttpMethod.java_class,Java::java.lang.String.java_class,Java::java.lang.String.java_class,Java::IoVertxCore::Handler.java_class]).call(Java::IoVertxCoreHttp::HttpMethod.valueOf(param_1.to_s),param_2,param_3,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil, ar.succeeded ? ::Vertx::Util::Utils.safe_create(ar.result,::Vertx::HttpServerResponse) : nil) })),::Vertx::HttpServerResponse) elsif param_1.class == Symbol && param_2.class == String && param_3.class.method_defined?(:j_del) && block_given? && param_4 == nil return ::Vertx::Util::Utils.safe_create(@j_del.java_method(:push, [Java::IoVertxCoreHttp::HttpMethod.java_class,Java::java.lang.String.java_class,Java::IoVertxCore::MultiMap.java_class,Java::IoVertxCore::Handler.java_class]).call(Java::IoVertxCoreHttp::HttpMethod.valueOf(param_1.to_s),param_2,param_3.j_del,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil, ar.succeeded ? ::Vertx::Util::Utils.safe_create(ar.result,::Vertx::HttpServerResponse) : nil) })),::Vertx::HttpServerResponse) elsif param_1.class == Symbol && param_2.class == String && param_3.class == String && param_4.class.method_defined?(:j_del) && block_given? @j_del.java_method(:push, [Java::IoVertxCoreHttp::HttpMethod.java_class,Java::java.lang.String.java_class,Java::java.lang.String.java_class,Java::IoVertxCore::MultiMap.java_class,Java::IoVertxCore::Handler.java_class]).call(Java::IoVertxCoreHttp::HttpMethod.valueOf(param_1.to_s),param_2,param_3,param_4.j_del,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil, ar.succeeded ? ::Vertx::Util::Utils.safe_create(ar.result,::Vertx::HttpServerResponse) : nil) })) return self end raise ArgumentError, "Invalid arguments when calling push(#{param_1},#{param_2},#{param_3},#{param_4})" end |
- (self) put_header(name = nil, value = nil)
187 188 189 190 191 192 193 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 187 def put_header(name=nil,value=nil) if name.class == String && value.class == String && !block_given? @j_del.java_method(:putHeader, [Java::java.lang.String.java_class,Java::java.lang.String.java_class]).call(name,value) return self end raise ArgumentError, "Invalid arguments when calling put_header(#{name},#{value})" end |
- (self) put_trailer(name = nil, value = nil)
208 209 210 211 212 213 214 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 208 def put_trailer(name=nil,value=nil) if name.class == String && value.class == String && !block_given? @j_del.java_method(:putTrailer, [Java::java.lang.String.java_class,Java::java.lang.String.java_class]).call(name,value) return self end raise ArgumentError, "Invalid arguments when calling put_trailer(#{name},#{value})" end |
- (void) reset(code = nil)
This method returns an undefined value.
Reset this HTTP/2 stream with the errorcode
.
401 402 403 404 405 406 407 408 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 401 def reset(code=nil) if !block_given? && code == nil return @j_del.java_method(:reset, []).call() elsif code.class == Fixnum && !block_given? return @j_del.java_method(:reset, [Java::long.java_class]).call(code) end raise ArgumentError, "Invalid arguments when calling reset(#{code})" end |
- (self) send_file(filename = nil, offset = nil, length = nil) { ... }
265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 265 def send_file(filename=nil,offset=nil,length=nil) if filename.class == String && !block_given? && offset == nil && length == nil @j_del.java_method(:sendFile, [Java::java.lang.String.java_class]).call(filename) return self elsif filename.class == String && offset.class == Fixnum && !block_given? && length == nil @j_del.java_method(:sendFile, [Java::java.lang.String.java_class,Java::long.java_class]).call(filename,offset) return self elsif filename.class == String && block_given? && offset == nil && length == nil @j_del.java_method(:sendFile, [Java::java.lang.String.java_class,Java::IoVertxCore::Handler.java_class]).call(filename,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil) })) return self elsif filename.class == String && offset.class == Fixnum && length.class == Fixnum && !block_given? @j_del.java_method(:sendFile, [Java::java.lang.String.java_class,Java::long.java_class,Java::long.java_class]).call(filename,offset,length) return self elsif filename.class == String && offset.class == Fixnum && block_given? && length == nil @j_del.java_method(:sendFile, [Java::java.lang.String.java_class,Java::long.java_class,Java::IoVertxCore::Handler.java_class]).call(filename,offset,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil) })) return self elsif filename.class == String && offset.class == Fixnum && length.class == Fixnum && block_given? @j_del.java_method(:sendFile, [Java::java.lang.String.java_class,Java::long.java_class,Java::long.java_class,Java::IoVertxCore::Handler.java_class]).call(filename,offset,length,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil) })) return self end raise ArgumentError, "Invalid arguments when calling send_file(#{filename},#{offset},#{length})" end |
- (self) set_chunked(chunked = nil)
chunked
is true
, this response will use HTTP chunked encoding, and each call to write to the body
will correspond to a new HTTP chunk sent on the wire.
If chunked encoding is used the HTTP header Transfer-Encoding
with a value of Chunked
will be
automatically inserted in the response.
If chunked
is false
, this response will not use HTTP chunked encoding, and therefore the total size
of any data that is written in the respone body must be set in the Content-Length
header before any
data is written out.
An HTTP chunked response is typically used when you do not know the total size of the request body up front.
159 160 161 162 163 164 165 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 159 def set_chunked(chunked=nil) if (chunked.class == TrueClass || chunked.class == FalseClass) && !block_given? @j_del.java_method(:setChunked, [Java::boolean.java_class]).call(chunked) return self end raise ArgumentError, "Invalid arguments when calling set_chunked(#{chunked})" end |
- (self) set_status_code(statusCode = nil)
122 123 124 125 126 127 128 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 122 def set_status_code(statusCode=nil) if statusCode.class == Fixnum && !block_given? @j_del.java_method(:setStatusCode, [Java::int.java_class]).call(statusCode) return self end raise ArgumentError, "Invalid arguments when calling set_status_code(#{statusCode})" end |
- (self) set_status_message(statusMessage = nil)
139 140 141 142 143 144 145 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 139 def (statusMessage=nil) if statusMessage.class == String && !block_given? @j_del.java_method(:setStatusMessage, [Java::java.lang.String.java_class]).call(statusMessage) return self end raise ArgumentError, "Invalid arguments when calling set_status_message(#{statusMessage})" end |
- (self) set_write_queue_max_size(maxSize = nil)
95 96 97 98 99 100 101 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 95 def set_write_queue_max_size(maxSize=nil) if maxSize.class == Fixnum && !block_given? @j_del.java_method(:setWriteQueueMaxSize, [Java::int.java_class]).call(maxSize) return self end raise ArgumentError, "Invalid arguments when calling set_write_queue_max_size(#{maxSize})" end |
- (Fixnum) stream_id
348 349 350 351 352 353 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 348 def stream_id if !block_given? return @j_del.java_method(:streamId, []).call() end raise ArgumentError, "Invalid arguments when calling stream_id()" end |
- (::Vertx::MultiMap) trailers
195 196 197 198 199 200 201 202 203 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 195 def trailers if !block_given? if @cached_trailers != nil return @cached_trailers end return @cached_trailers = ::Vertx::Util::Utils.safe_create(@j_del.java_method(:trailers, []).call(),::Vertx::MultiMap) end raise ArgumentError, "Invalid arguments when calling trailers()" end |
- (self) write(data) - (self) write(chunk) - (self) write(chunk, enc)
enc
.
80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 80 def write(param_1=nil,param_2=nil) if param_1.class.method_defined?(:j_del) && !block_given? && param_2 == nil @j_del.java_method(:write, [Java::IoVertxCoreBuffer::Buffer.java_class]).call(param_1.j_del) return self elsif param_1.class == String && !block_given? && param_2 == nil @j_del.java_method(:write, [Java::java.lang.String.java_class]).call(param_1) return self elsif param_1.class == String && param_2.class == String && !block_given? @j_del.java_method(:write, [Java::java.lang.String.java_class,Java::java.lang.String.java_class]).call(param_1,param_2) return self end raise ArgumentError, "Invalid arguments when calling write(#{param_1},#{param_2})" end |
- (self) write_continue
229 230 231 232 233 234 235 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 229 def write_continue if !block_given? @j_del.java_method(:writeContinue, []).call() return self end raise ArgumentError, "Invalid arguments when calling write_continue()" end |
- (self) writeCustomFrame(frame) - (self) writeCustomFrame(type, flags, payload)
The frame is sent immediatly and is not subject to flow control.
419 420 421 422 423 424 425 426 427 428 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 419 def write_custom_frame(param_1=nil,param_2=nil,param_3=nil) if param_1.class.method_defined?(:j_del) && !block_given? && param_2 == nil && param_3 == nil @j_del.java_method(:writeCustomFrame, [Java::IoVertxCoreHttp::HttpFrame.java_class]).call(param_1.j_del) return self elsif param_1.class == Fixnum && param_2.class == Fixnum && param_3.class.method_defined?(:j_del) && !block_given? @j_del.java_method(:writeCustomFrame, [Java::int.java_class,Java::int.java_class,Java::IoVertxCoreBuffer::Buffer.java_class]).call(param_1,param_2,param_3.j_del) return self end raise ArgumentError, "Invalid arguments when calling write_custom_frame(#{param_1},#{param_2},#{param_3})" end |
- (true, false) write_queue_full?
true
if there are more bytes in the write queue than the value set using #set_write_queue_max_size
56 57 58 59 60 61 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_server_response.rb', line 56 def write_queue_full? if !block_given? return @j_del.java_method(:writeQueueFull, []).call() end raise ArgumentError, "Invalid arguments when calling write_queue_full?()" end |