Class: Vertx::HttpServerResponse
- Inherits:
-
Object
- Object
- Vertx::HttpServerResponse
- Includes:
- WriteStream
- Defined in:
- /Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/src/main/resources/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.
Instance Method Summary (collapse)
-
- (self) body_end_handler { ... }
Provide a handler that will be called just before the last part of the body is written to the wire and the response is ended.
-
- (true, false) chunked?
@return 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.
- - (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?
@return has the response already ended?.
- - (self) exception_handler { ... }
-
- (Fixnum) get_status_code
@return the HTTP status code of the response.
-
- (String) get_status_message
@return the HTTP status message of the response.
-
- (true, false) head_written?
@return have the headers for the response already been written?.
-
- (::Vertx::MultiMap) headers
@return The HTTP headers.
-
- (self) headers_end_handler { ... }
Provide a handler that will be called just before the headers are written to the wire.
-
- (self) put_header(name = nil, value = nil)
Put an HTTP header.
-
- (self) put_trailer(name = nil, value = nil)
Put an HTTP trailer.
-
- (self) send_file(filename = 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)
-
- (::Vertx::MultiMap) trailers
@return The HTTP trailers.
-
- (self) write(param_1 = nil, param_2 = nil)
Write a String to the response body, encoded using the encoding enc.
-
- (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.
Instance Method Details
- (self) body_end_handler { ... }
This provides a hook allowing you to do any more operations before this occurs.
295 296 297 298 299 300 301 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/src/main/resources/vertx/http_server_response.rb', line 295 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 |
- (true, false) chunked?
155 156 157 158 159 160 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/src/main/resources/vertx/http_server_response.rb', line 155 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.
255 256 257 258 259 260 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/src/main/resources/vertx/http_server_response.rb', line 255 def close if !block_given? return @j_del.java_method(:close, []).call() end raise ArgumentError, "Invalid arguments when calling close()" end |
- (self) close_handler { ... }
209 210 211 212 213 214 215 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/src/main/resources/vertx/http_server_response.rb', line 209 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) drain_handler { ... }
88 89 90 91 92 93 94 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/src/main/resources/vertx/http_server_response.rb', line 88 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.
226 227 228 229 230 231 232 233 234 235 236 237 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/src/main/resources/vertx/http_server_response.rb', line 226 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?
263 264 265 266 267 268 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/src/main/resources/vertx/http_server_response.rb', line 263 def ended? if !block_given? return @j_del.java_method(:ended, []).call() end raise ArgumentError, "Invalid arguments when calling ended?()" end |
- (self) exception_handler { ... }
48 49 50 51 52 53 54 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/src/main/resources/vertx/http_server_response.rb', line 48 def exception_handler if block_given? @j_del.java_method(:exceptionHandler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(event) })) return self end raise ArgumentError, "Invalid arguments when calling exception_handler()" end |
- (Fixnum) get_status_code
200
representing OK
.
97 98 99 100 101 102 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/src/main/resources/vertx/http_server_response.rb', line 97 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
117 118 119 120 121 122 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/src/main/resources/vertx/http_server_response.rb', line 117 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?
271 272 273 274 275 276 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/src/main/resources/vertx/http_server_response.rb', line 271 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
163 164 165 166 167 168 169 170 171 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/src/main/resources/vertx/http_server_response.rb', line 163 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. The handler will be passed a future, when you've completed the work you want to do you should complete (or fail) the future. This can be done after the handler has returned.
283 284 285 286 287 288 289 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/src/main/resources/vertx/http_server_response.rb', line 283 def headers_end_handler if block_given? @j_del.java_method(:headersEndHandler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(::Vertx::Util::Utils.safe_create(event,::Vertx::Future)) })) return self end raise ArgumentError, "Invalid arguments when calling headers_end_handler()" end |
- (self) put_header(name = nil, value = nil)
176 177 178 179 180 181 182 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/src/main/resources/vertx/http_server_response.rb', line 176 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)
198 199 200 201 202 203 204 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/src/main/resources/vertx/http_server_response.rb', line 198 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 |
- (self) send_file(filename = nil) { ... }
243 244 245 246 247 248 249 250 251 252 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/src/main/resources/vertx/http_server_response.rb', line 243 def send_file(filename=nil) if filename.class == String && !block_given? @j_del.java_method(:sendFile, [Java::java.lang.String.java_class]).call(filename) return self elsif filename.class == String && block_given? @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 end raise ArgumentError, "Invalid arguments when calling send_file(filename)" 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.
146 147 148 149 150 151 152 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/src/main/resources/vertx/http_server_response.rb', line 146 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)
107 108 109 110 111 112 113 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/src/main/resources/vertx/http_server_response.rb', line 107 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)
126 127 128 129 130 131 132 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/src/main/resources/vertx/http_server_response.rb', line 126 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)
79 80 81 82 83 84 85 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/src/main/resources/vertx/http_server_response.rb', line 79 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 |
- (::Vertx::MultiMap) trailers
185 186 187 188 189 190 191 192 193 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/src/main/resources/vertx/http_server_response.rb', line 185 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
.
64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/src/main/resources/vertx/http_server_response.rb', line 64 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 |
- (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
40 41 42 43 44 45 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/src/main/resources/vertx/http_server_response.rb', line 40 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 |