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
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)
-
- (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.
Class Method Details
+ (Boolean) accept?(obj)
27 28 29 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 27 def @@j_api_type.accept?(obj) obj.class == AsyncFile end |
+ (Object) j_api_type
36 37 38 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 36 def self.j_api_type @@j_api_type end |
+ (Object) j_class
39 40 41 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 39 def self.j_class Java::IoVertxCoreFile::AsyncFile.java_class end |
+ (Object) unwrap(obj)
33 34 35 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 33 def @@j_api_type.unwrap(obj) obj.j_del end |
+ (Object) wrap(obj)
30 31 32 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 30 def @@j_api_type.wrap(obj) AsyncFile.new(obj) end |
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.
149 150 151 152 153 154 155 156 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 149 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 { ... }
129 130 131 132 133 134 135 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 129 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.
45 46 47 48 49 50 51 52 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 45 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 { ... }
88 89 90 91 92 93 94 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 88 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 { ... }
138 139 140 141 142 143 144 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 138 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 { ... }
181 182 183 184 185 186 187 188 189 190 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 181 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 { ... }
63 64 65 66 67 68 69 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 63 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
71 72 73 74 75 76 77 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 71 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.
171 172 173 174 175 176 177 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 171 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
79 80 81 82 83 84 85 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 79 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)
215 216 217 218 219 220 221 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 215 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)
194 195 196 197 198 199 200 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 194 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)
204 205 206 207 208 209 210 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 204 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)
120 121 122 123 124 125 126 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 120 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.
108 109 110 111 112 113 114 115 116 117 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 108 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
55 56 57 58 59 60 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/async_file.rb', line 55 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 |