Class: Vertx::AsyncFile
- Inherits:
-
Object
- Object
- Vertx::AsyncFile
- Includes:
- ReadStream, WriteStream
- Defined in:
- /Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb
Overview
This class also implements ReadStream and WriteStream. This allows the data to be pumped to and from other streams, e.g. an HttpClientRequest instance, using the Pump class
Instance Method Summary (collapse)
-
- (void) close { ... }
Close the file.
- - (self) drain_handler { ... }
-
- (void) end(t = nil)
Same as #end but writes some data to the stream before ending.
- - (self) end_handler { ... }
- - (self) exception_handler { ... }
-
- (self) flush { ... }
Same as #flush but the handler will be called when the flush is complete or if an error occurs.
- - (self) handler { ... }
- - (self) pause
-
- (self) read(buffer = nil, offset = nil, position = nil, length = nil) { ... }
Reads length bytes of data from the file at position position in the file, asynchronously.
- - (self) resume
-
- (self) set_read_buffer_size(readBufferSize = nil)
Sets the buffer size that will be used to read the data from the file.
-
- (self) set_read_pos(readPos = nil)
Sets the position from which data will be read from when using the file as a ReadStream.
-
- (self) set_write_pos(writePos = nil)
Sets the position from which data will be written when using the file as a WriteStream.
- - (self) set_write_queue_max_size(maxSize = nil)
-
- (self) write(buffer = nil, position = nil) { ... }
Write a Buffer to the file at position position in the file, asynchronously.
-
- (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
- (void) close { ... }
This method returns an undefined value.
Close the file. The actual close happens asynchronously. The handler will be called when the close is complete, or an error occurs.
133 134 135 136 137 138 139 140 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 133 def close if !block_given? return @j_del.java_method(:close, []).call() elsif block_given? return @j_del.java_method(:close, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |ar| yield(ar.failed ? ar.cause : nil) })) end raise ArgumentError, "Invalid arguments when calling close()" end |
- (self) drain_handler { ... }
113 114 115 116 117 118 119 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 113 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(t = nil)
This method returns an undefined value.
Same as #end but writes some data to the stream before ending.
29 30 31 32 33 34 35 36 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 29 def end(t=nil) if !block_given? && t == nil return @j_del.java_method(:end, []).call() elsif t.class.method_defined?(:j_del) && !block_given? return @j_del.java_method(:end, [Java::IoVertxCoreBuffer::Buffer.java_class]).call(t.j_del) end raise ArgumentError, "Invalid arguments when calling end(t)" end |
- (self) end_handler { ... }
72 73 74 75 76 77 78 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 72 def end_handler if block_given? @j_del.java_method(:endHandler, [Java::IoVertxCore::Handler.java_class]).call(Proc.new { yield }) return self end raise ArgumentError, "Invalid arguments when calling end_handler()" end |
- (self) exception_handler { ... }
122 123 124 125 126 127 128 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 122 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 |
- (self) flush { ... }
165 166 167 168 169 170 171 172 173 174 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 165 def flush if !block_given? @j_del.java_method(:flush, []).call() return self elsif block_given? @j_del.java_method(:flush, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |ar| yield(ar.failed ? ar.cause : nil) })) return self end raise ArgumentError, "Invalid arguments when calling flush()" end |
- (self) handler { ... }
47 48 49 50 51 52 53 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 47 def handler if block_given? @j_del.java_method(:handler, [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 handler()" end |
- (self) pause
55 56 57 58 59 60 61 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 55 def pause if !block_given? @j_del.java_method(:pause, []).call() return self end raise ArgumentError, "Invalid arguments when calling pause()" end |
- (self) read(buffer = nil, offset = nil, position = nil, length = nil) { ... }
length
bytes of data from the file at position position
in the file, asynchronously.
The read data will be written into the specified Buffer buffer
at position offset
.
If data is read past the end of the file then zero bytes will be read.
When multiple reads are invoked on the same file there are no guarantees as to order in which those reads actually occur.
The handler will be called when the close is complete, or if an error occurs.
155 156 157 158 159 160 161 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 155 def read(buffer=nil,offset=nil,position=nil,length=nil) if buffer.class.method_defined?(:j_del) && offset.class == Fixnum && position.class == Fixnum && length.class == Fixnum && block_given? @j_del.java_method(:read, [Java::IoVertxCoreBuffer::Buffer.java_class,Java::int.java_class,Java::long.java_class,Java::int.java_class,Java::IoVertxCore::Handler.java_class]).call(buffer.j_del,offset,position,length,(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 read(buffer,offset,position,length)" end |
- (self) resume
63 64 65 66 67 68 69 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 63 def resume if !block_given? @j_del.java_method(:resume, []).call() return self end raise ArgumentError, "Invalid arguments when calling resume()" end |
- (self) set_read_buffer_size(readBufferSize = nil)
199 200 201 202 203 204 205 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 199 def set_read_buffer_size(readBufferSize=nil) if readBufferSize.class == Fixnum && !block_given? @j_del.java_method(:setReadBufferSize, [Java::int.java_class]).call(readBufferSize) return self end raise ArgumentError, "Invalid arguments when calling set_read_buffer_size(readBufferSize)" end |
- (self) set_read_pos(readPos = nil)
178 179 180 181 182 183 184 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 178 def set_read_pos(readPos=nil) if readPos.class == Fixnum && !block_given? @j_del.java_method(:setReadPos, [Java::long.java_class]).call(readPos) return self end raise ArgumentError, "Invalid arguments when calling set_read_pos(readPos)" end |
- (self) set_write_pos(writePos = nil)
188 189 190 191 192 193 194 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 188 def set_write_pos(writePos=nil) if writePos.class == Fixnum && !block_given? @j_del.java_method(:setWritePos, [Java::long.java_class]).call(writePos) return self end raise ArgumentError, "Invalid arguments when calling set_write_pos(writePos)" end |
- (self) set_write_queue_max_size(maxSize = nil)
104 105 106 107 108 109 110 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 104 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 |
- (self) write(buffer = nil, position = nil) { ... }
position
in the file, asynchronously.
If position
lies outside of the current size
of the file, the file will be enlarged to encompass it.
When multiple writes are invoked on the same file there are no guarantees as to order in which those writes actually occur
The handler will be called when the write is complete, or if an error occurs.
92 93 94 95 96 97 98 99 100 101 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 92 def write(buffer=nil,position=nil) if buffer.class.method_defined?(:j_del) && !block_given? && position == nil @j_del.java_method(:write, [Java::IoVertxCoreBuffer::Buffer.java_class]).call(buffer.j_del) return self elsif buffer.class.method_defined?(:j_del) && position.class == Fixnum && block_given? @j_del.java_method(:write, [Java::IoVertxCoreBuffer::Buffer.java_class,Java::long.java_class,Java::IoVertxCore::Handler.java_class]).call(buffer.j_del,position,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil) })) return self end raise ArgumentError, "Invalid arguments when calling write(buffer,position)" 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
39 40 41 42 43 44 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 39 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 |