Class: Vertx::AsyncFile
- Inherits:
-
Object
- Object
- Vertx::AsyncFile
- Includes:
- ReadStream, WriteStream
- Defined in:
- /Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/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) fetch(amount = nil)
-
- (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-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/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-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/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-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/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-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/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-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/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.
158 159 160 161 162 163 164 165 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/async_file.rb', line 158 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-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/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-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/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-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/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-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/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) fetch(amount = nil)
147 148 149 150 151 152 153 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/async_file.rb', line 147 def fetch(amount=nil) if amount.class == Fixnum && !block_given? @j_del.java_method(:fetch, [Java::long.java_class]).call(amount) return self end raise ArgumentError, "Invalid arguments when calling fetch(#{amount})" end |
- (self) flush { ... }
190 191 192 193 194 195 196 197 198 199 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/async_file.rb', line 190 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-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/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-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/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.
180 181 182 183 184 185 186 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/async_file.rb', line 180 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-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/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)
224 225 226 227 228 229 230 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/async_file.rb', line 224 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)
203 204 205 206 207 208 209 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/async_file.rb', line 203 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)
213 214 215 216 217 218 219 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/async_file.rb', line 213 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-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/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-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/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-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/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 |