Module: Vertx::WriteStream
- Includes:
- StreamBase
- Included in:
- AsyncFile, HttpClientRequest, HttpServerResponse, MessageProducer, NetSocket, WebSocketBase, WriteStreamImpl, VertxAmqpClient::AmqpSender, VertxKafkaClient::KafkaProducer, VertxWeb::SockJSSocket
- Defined in:
- /Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/write_stream.rb
Instance Method Summary (collapse)
-
- (self) drainHandler(handler) { ... }
Set a drain handler on the stream.
-
- (void) end(*args)
Same as but with an handler called when the operation completes.
-
- (self) exceptionHandler(handler) { ... }
Set an exception handler on the write stream.
-
- (self) setWriteQueueMaxSize(maxSize)
Set the maximum size of the write queue to maxSize.
-
- (void) write(data, handler) { ... }
Same as but with an handler called when the operation completes.
-
- (true, false) writeQueueFull
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) drainHandler(handler) { ... }
Set a drain handler on the stream. If the write queue is full, then the handler will be called when the write
queue is ready to accept buffers again. See Pump for an example of this being used.
The stream implementation defines when the drain handler, for example it could be when the queue size has been
reduced to
maxSize / 2
.
17 18 19 20 21 22 23 24 25 26 27 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/write_stream.rb', line 17 def drain_handler if true @j_del.java_method(:drainHandler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(nil) unless !block_given? })) return self end if defined?(super) super else raise ArgumentError, "Invalid arguments when calling drain_handler()" end end |
- (void) end(handler) { ... } - (void) end(data, handler) { ... }
This method returns an undefined value.
Same as but with anhandler
called when the operation completes
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/write_stream.rb', line 48 def end(*args) if true && args[0] == nil if (block_given?) return @j_del.java_method(:end, [Java::IoVertxCore::Handler.java_class]).call(block_given? ? Proc.new { |ar| yield(ar.failed ? ar.cause : nil, ar.succeeded ? nil : nil) } : promise) else promise = ::Vertx::Util::Utils.promise @j_del.java_method(:end, [Java::IoVertxCore::Handler.java_class]).call(block_given? ? Proc.new { |ar| yield(ar.failed ? ar.cause : nil, ar.succeeded ? nil : nil) } : promise) return ::Vertx::Util::Utils.safe_create(promise.future(),::Vertx::Future, nil) end elsif @j_arg_T.accept?(args[0]) && true if (block_given?) return @j_del.java_method(:end, [Java::java.lang.Object.java_class,Java::IoVertxCore::Handler.java_class]).call(@j_arg_T.unwrap(args[0]),block_given? ? Proc.new { |ar| yield(ar.failed ? ar.cause : nil, ar.succeeded ? nil : nil) } : promise) else promise = ::Vertx::Util::Utils.promise @j_del.java_method(:end, [Java::java.lang.Object.java_class,Java::IoVertxCore::Handler.java_class]).call(@j_arg_T.unwrap(args[0]),block_given? ? Proc.new { |ar| yield(ar.failed ? ar.cause : nil, ar.succeeded ? nil : nil) } : promise) return ::Vertx::Util::Utils.safe_create(promise.future(),::Vertx::Future, nil) end end if defined?(super) super else raise ArgumentError, "Invalid arguments when calling end(#{args[0]})" end end |
- (self) exceptionHandler(handler) { ... }
Set an exception handler on the write stream.
97 98 99 100 101 102 103 104 105 106 107 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/write_stream.rb', line 97 def exception_handler if true @j_del.java_method(:exceptionHandler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(::Vertx::Util::Utils.from_throwable(event)) unless !block_given? })) return self end if defined?(super) super else raise ArgumentError, "Invalid arguments when calling exception_handler()" end end |
- (self) setWriteQueueMaxSize(maxSize)
Set the maximum size of the write queue to
maxSize
. You will still be able to write to the stream even
if there is more than maxSize
items in the write queue. This is used as an indicator by classes such as
Pump
to provide flow control.
The value is defined by the implementation of the stream, e.g in bytes for a
NetSocket, the number of Message for a
MessageProducer, etc...
118 119 120 121 122 123 124 125 126 127 128 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/write_stream.rb', line 118 def set_write_queue_max_size(*args) if args[0].class == Fixnum && !block_given? @j_del.java_method(:setWriteQueueMaxSize, [Java::int.java_class]).call(args[0]) return self end if defined?(super) super else raise ArgumentError, "Invalid arguments when calling set_write_queue_max_size(#{args[0]})" end end |
- (void) write(data, handler) { ... }
This method returns an undefined value.
Same as but with anhandler
called when the operation completes
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/write_stream.rb', line 77 def write(*args) if @j_arg_T.accept?(args[0]) && true if (block_given?) return @j_del.java_method(:write, [Java::java.lang.Object.java_class,Java::IoVertxCore::Handler.java_class]).call(@j_arg_T.unwrap(args[0]),block_given? ? Proc.new { |ar| yield(ar.failed ? ar.cause : nil, ar.succeeded ? nil : nil) } : promise) else promise = ::Vertx::Util::Utils.promise @j_del.java_method(:write, [Java::java.lang.Object.java_class,Java::IoVertxCore::Handler.java_class]).call(@j_arg_T.unwrap(args[0]),block_given? ? Proc.new { |ar| yield(ar.failed ? ar.cause : nil, ar.succeeded ? nil : nil) } : promise) return ::Vertx::Util::Utils.safe_create(promise.future(),::Vertx::Future, nil) end end if defined?(super) super else raise ArgumentError, "Invalid arguments when calling write(#{args[0]})" end end |
- (true, false) writeQueueFull
This will return
true
if there are more bytes in the write queue than the value set using #set_write_queue_max_size
31 32 33 34 35 36 37 38 39 40 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/write_stream.rb', line 31 def write_queue_full? if !block_given? return @j_del.java_method(:writeQueueFull, []).call() end if defined?(super) super else raise ArgumentError, "Invalid arguments when calling write_queue_full?()" end end |