Class: Vertx::NetSocket

Inherits:
Object
  • Object
show all
Includes:
ReadStream, WriteStream
Defined in:
/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb

Overview

Represents a socket-like interface to a TCP connection on either the client or the server side.

Instances of this class are created on the client side by an NetClient when a connection to a server is made, or on the server side by a NetServer when a server accepts a connection.

It implements both and so it can be used with Pump to pump data with flow control.

Constant Summary

@@j_api_type =
Object.new

Class Method Summary (collapse)

Instance Method Summary (collapse)

Class Method Details

+ (Boolean) accept?(obj)

Returns:

  • (Boolean)

32
33
34
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 32

def @@j_api_type.accept?(obj)
  obj.class == NetSocket
end

+ (Object) j_api_type


41
42
43
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 41

def self.j_api_type
  @@j_api_type
end

+ (Object) j_class


44
45
46
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 44

def self.j_class
  Java::IoVertxCoreNet::NetSocket.java_class
end

+ (Object) unwrap(obj)


38
39
40
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 38

def @@j_api_type.unwrap(obj)
  obj.j_del
end

+ (Object) wrap(obj)


35
36
37
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 35

def @@j_api_type.wrap(obj)
  NetSocket.new(obj)
end

Instance Method Details

- (void) close { ... }

This method returns an undefined value.

Close the NetSocket and notify the handler when the operation completes.

Yields:

Raises:

  • (ArgumentError)

278
279
280
281
282
283
284
285
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 278

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) close_handler { ... }

Set a handler that will be called when the NetSocket is closed

Yields:

  • the handler

Returns:

  • (self)

Raises:

  • (ArgumentError)

289
290
291
292
293
294
295
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 289

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 { ... }

Yields:

Returns:

  • (self)

Raises:

  • (ArgumentError)

206
207
208
209
210
211
212
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 206

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(data = nil) { ... }

This method returns an undefined value.

Same as but with an handler called when the operation completes

Parameters:

Yields:

Raises:

  • (ArgumentError)

51
52
53
54
55
56
57
58
59
60
61
62
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 51

def end(data=nil)
  if !block_given? && data == nil
    return @j_del.java_method(:end, []).call()
  elsif data.class.method_defined?(:j_del) && !block_given?
    return @j_del.java_method(:end, [Java::IoVertxCoreBuffer::Buffer.java_class]).call(data.j_del)
  elsif block_given? && data == nil
    return @j_del.java_method(:end, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |ar| yield(ar.failed ? ar.cause : nil) }))
  elsif data.class.method_defined?(:j_del) && block_given?
    return @j_del.java_method(:end, [Java::IoVertxCoreBuffer::Buffer.java_class,Java::IoVertxCore::Handler.java_class]).call(data.j_del,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil) }))
  end
  raise ArgumentError, "Invalid arguments when calling end(#{data})"
end

- (self) end_handler { ... }

This handler might be called after the close handler when the socket is paused and there are still buffers to deliver.

Yields:

Returns:

  • (self)

Raises:

  • (ArgumentError)

147
148
149
150
151
152
153
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 147

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 { ... }

Yields:

Returns:

  • (self)

Raises:

  • (ArgumentError)

100
101
102
103
104
105
106
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 100

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)

Parameters:

  • amount (Fixnum) (defaults to: nil)

Returns:

  • (self)

Raises:

  • (ArgumentError)

134
135
136
137
138
139
140
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 134

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) handler { ... }

Yields:

Returns:

  • (self)

Raises:

  • (ArgumentError)

109
110
111
112
113
114
115
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 109

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

- (String) indicated_server_name

Returns the SNI server name presented during the SSL handshake by the client.

Returns:

  • (String)
    the indicated server name

Raises:

  • (ArgumentError)

319
320
321
322
323
324
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 319

def indicated_server_name
  if !block_given?
    return @j_del.java_method(:indicatedServerName, []).call()
  end
  raise ArgumentError, "Invalid arguments when calling indicated_server_name()"
end

- (::Vertx::SocketAddress) local_address

Returns the local address for this socket

Returns:

Raises:

  • (ArgumentError)

266
267
268
269
270
271
272
273
274
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 266

def local_address
  if !block_given?
    if @cached_local_address != nil
      return @cached_local_address
    end
    return @cached_local_address = ::Vertx::Util::Utils.safe_create(@j_del.java_method(:localAddress, []).call(),::Vertx::SocketAddress)
  end
  raise ArgumentError, "Invalid arguments when calling local_address()"
end

- (self) pause

Returns:

  • (self)

Raises:

  • (ArgumentError)

117
118
119
120
121
122
123
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 117

def pause
  if !block_given?
    @j_del.java_method(:pause, []).call()
    return self
  end
  raise ArgumentError, "Invalid arguments when calling pause()"
end

- (::Vertx::Pipe) pipe

Pause this stream and return a to transfer the elements of this stream to a destination .

The stream will be resumed when the pipe will be wired to a WriteStream.

Returns:

Raises:

  • (ArgumentError)

75
76
77
78
79
80
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 75

def pipe
  if !block_given?
    return ::Vertx::Util::Utils.safe_create(@j_del.java_method(:pipe, []).call(),::Vertx::Pipe,::Vertx::Buffer.j_api_type)
  end
  raise ArgumentError, "Invalid arguments when calling pipe()"
end

- (void) pipe_to(dst = nil) { ... }

This method returns an undefined value.

Pipe this ReadStream to the WriteStream.

Elements emitted by this stream will be written to the write stream until this stream ends or fails.

Once this stream has ended or failed, the write stream will be ended and the handler will be called with the result.

Parameters:

Yields:

Raises:

  • (ArgumentError)

90
91
92
93
94
95
96
97
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 90

def pipe_to(dst=nil)
  if dst.class.method_defined?(:j_del) && !block_given?
    return @j_del.java_method(:pipeTo, [Java::IoVertxCoreStreams::WriteStream.java_class]).call(dst.j_del)
  elsif dst.class.method_defined?(:j_del) && block_given?
    return @j_del.java_method(:pipeTo, [Java::IoVertxCoreStreams::WriteStream.java_class,Java::IoVertxCore::Handler.java_class]).call(dst.j_del,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil) }))
  end
  raise ArgumentError, "Invalid arguments when calling pipe_to(#{dst})"
end

- (::Vertx::SocketAddress) remote_address

Returns the remote address for this socket

Returns:

Raises:

  • (ArgumentError)

256
257
258
259
260
261
262
263
264
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 256

def remote_address
  if !block_given?
    if @cached_remote_address != nil
      return @cached_remote_address
    end
    return @cached_remote_address = ::Vertx::Util::Utils.safe_create(@j_del.java_method(:remoteAddress, []).call(),::Vertx::SocketAddress)
  end
  raise ArgumentError, "Invalid arguments when calling remote_address()"
end

- (self) resume

Returns:

  • (self)

Raises:

  • (ArgumentError)

125
126
127
128
129
130
131
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 125

def resume
  if !block_given?
    @j_del.java_method(:resume, []).call()
    return self
  end
  raise ArgumentError, "Invalid arguments when calling resume()"
end

- (self) send_file(filename = nil, offset = nil, length = nil) { ... }

Same as #send_file but also takes a handler that will be called when the send has completed or a failure has occurred

Parameters:

  • filename (String) (defaults to: nil)
    file name of the file to send
  • offset (Fixnum) (defaults to: nil)
    offset
  • length (Fixnum) (defaults to: nil)
    length

Yields:

  • handler

Returns:

  • (self)

Raises:

  • (ArgumentError)

233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 233

def send_file(filename=nil,offset=nil,length=nil)
  if filename.class == String && !block_given? && offset == nil && length == nil
    @j_del.java_method(:sendFile, [Java::java.lang.String.java_class]).call(filename)
    return self
  elsif filename.class == String && offset.class == Fixnum && !block_given? && length == nil
    @j_del.java_method(:sendFile, [Java::java.lang.String.java_class,Java::long.java_class]).call(filename,offset)
    return self
  elsif filename.class == String && block_given? && offset == nil && length == nil
    @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
  elsif filename.class == String && offset.class == Fixnum && length.class == Fixnum && !block_given?
    @j_del.java_method(:sendFile, [Java::java.lang.String.java_class,Java::long.java_class,Java::long.java_class]).call(filename,offset,length)
    return self
  elsif filename.class == String && offset.class == Fixnum && block_given? && length == nil
    @j_del.java_method(:sendFile, [Java::java.lang.String.java_class,Java::long.java_class,Java::IoVertxCore::Handler.java_class]).call(filename,offset,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil) }))
    return self
  elsif filename.class == String && offset.class == Fixnum && length.class == Fixnum && block_given?
    @j_del.java_method(:sendFile, [Java::java.lang.String.java_class,Java::long.java_class,Java::long.java_class,Java::IoVertxCore::Handler.java_class]).call(filename,offset,length,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil) }))
    return self
  end
  raise ArgumentError, "Invalid arguments when calling send_file(#{filename},#{offset},#{length})"
end

- (self) set_write_queue_max_size(maxSize = nil)

Parameters:

  • maxSize (Fixnum) (defaults to: nil)

Returns:

  • (self)

Raises:

  • (ArgumentError)

197
198
199
200
201
202
203
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 197

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

- (true, false) ssl?

Returns true if this Vertx::NetSocket is encrypted via SSL/TLS.

Returns:

Raises:

  • (ArgumentError)

311
312
313
314
315
316
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 311

def ssl?
  if !block_given?
    return @j_del.java_method(:isSsl, []).call()
  end
  raise ArgumentError, "Invalid arguments when calling ssl?()"
end

- (self) upgrade_to_ssl(serverName = nil) { ... }

Upgrade channel to use SSL/TLS. Be aware that for this to work SSL must be configured.

Parameters:

  • serverName (String) (defaults to: nil)
    the server name

Yields:

  • the handler will be notified when it's upgraded

Returns:

  • (self)

Raises:

  • (ArgumentError)

300
301
302
303
304
305
306
307
308
309
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 300

def upgrade_to_ssl(serverName=nil)
  if block_given? && serverName == nil
    @j_del.java_method(:upgradeToSsl, [Java::IoVertxCore::Handler.java_class]).call(Proc.new { yield })
    return self
  elsif serverName.class == String && block_given?
    @j_del.java_method(:upgradeToSsl, [Java::java.lang.String.java_class,Java::IoVertxCore::Handler.java_class]).call(serverName,Proc.new { yield })
    return self
  end
  raise ArgumentError, "Invalid arguments when calling upgrade_to_ssl(#{serverName})"
end

- (self) write(data) - (self) write(str) - (self) write(str, handler) { ... } - (self) write(str, enc) - (self) write(message, handler) { ... } - (self) write(str, enc, handler) { ... }

Same as #write but with an handler called when the operation completes

Overloads:

  • - (self) write(data)

    Parameters:

  • - (self) write(str)

    Parameters:

    • str (String)
      the string to write
  • - (self) write(str, handler) { ... }

    Parameters:

    • str (String)

    Yields:

  • - (self) write(str, enc)

    Parameters:

    • str (String)
      the string to write
    • enc (String)
      the encoding to use
  • - (self) write(message, handler) { ... }

    Parameters:

    Yields:

  • - (self) write(str, enc, handler) { ... }

    Parameters:

    • str (String)
    • enc (String)

    Yields:

Returns:

  • (self)

Raises:

  • (ArgumentError)

173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 173

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 && block_given? && param_2 == nil
    @j_del.java_method(:write, [Java::java.lang.String.java_class,Java::IoVertxCore::Handler.java_class]).call(param_1,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil) }))
    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
  elsif param_1.class.method_defined?(:j_del) && block_given? && param_2 == nil
    @j_del.java_method(:write, [Java::IoVertxCoreBuffer::Buffer.java_class,Java::IoVertxCore::Handler.java_class]).call(param_1.j_del,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil) }))
    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,Java::IoVertxCore::Handler.java_class]).call(param_1,param_2,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil) }))
    return self
  end
  raise ArgumentError, "Invalid arguments when calling write(#{param_1},#{param_2})"
end

- (String) write_handler_id

When a NetSocket is created it automatically registers an event handler with the event bus, the ID of that handler is given by writeHandlerID.

Given this ID, a different event loop can send a buffer to that event handler using the event bus and that buffer will be received by this instance in its own event loop and written to the underlying connection. This allows you to write data to other connections which are owned by different event loops.

Returns:

  • (String)
    the write handler ID

Raises:

  • (ArgumentError)

220
221
222
223
224
225
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 220

def write_handler_id
  if !block_given?
    return @j_del.java_method(:writeHandlerID, []).call()
  end
  raise ArgumentError, "Invalid arguments when calling write_handler_id()"
end

- (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

Returns:

  • (true, false)
    true if write queue is full

Raises:

  • (ArgumentError)

65
66
67
68
69
70
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/net_socket.rb', line 65

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