Class: JRPC::Transport::SocketBase
- Inherits:
-
Object
- Object
- JRPC::Transport::SocketBase
show all
- Defined in:
- lib/jrpc/transport/socket_base.rb
Defined Under Namespace
Classes: ConnectionFailedError, ConnectionTimeoutError, Error, ReadFailedError, ReadTimeoutError, TimeoutError, WriteFailedError, WriteTimeoutError
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(options) ⇒ SocketBase
Returns a new instance of SocketBase.
41
42
43
44
45
46
47
48
|
# File 'lib/jrpc/transport/socket_base.rb', line 41
def initialize(options)
@server = options.fetch(:server)
@read_timeout = options.fetch(:read_timeout, nil)
@write_timeout = options.fetch(:write_timeout, nil)
@connect_timeout = options.fetch(:connect_timeout, nil)
@connect_retry_count = options.fetch(:connect_retry_count, 0)
@options = options
end
|
Instance Attribute Details
#options ⇒ Object
Returns the value of attribute options.
32
33
34
|
# File 'lib/jrpc/transport/socket_base.rb', line 32
def options
@options
end
|
#read_timeout ⇒ Object
Returns the value of attribute read_timeout.
32
33
34
|
# File 'lib/jrpc/transport/socket_base.rb', line 32
def read_timeout
@read_timeout
end
|
#write_timeout ⇒ Object
Returns the value of attribute write_timeout.
32
33
34
|
# File 'lib/jrpc/transport/socket_base.rb', line 32
def write_timeout
@write_timeout
end
|
Class Method Details
.connect(options) ⇒ Object
34
35
36
37
38
39
|
# File 'lib/jrpc/transport/socket_base.rb', line 34
def self.connect(options)
connection = new(options)
yield(connection)
ensure
connection.close if connection
end
|
Instance Method Details
#close ⇒ Object
72
73
74
|
# File 'lib/jrpc/transport/socket_base.rb', line 72
def close
raise NotImplementedError
end
|
#closed? ⇒ Boolean
76
77
78
|
# File 'lib/jrpc/transport/socket_base.rb', line 76
def closed?
raise NotImplementedError
end
|
#connect ⇒ Object
50
51
52
53
54
55
56
57
58
59
60
61
62
|
# File 'lib/jrpc/transport/socket_base.rb', line 50
def connect
retries = @connect_retry_count
while retries >= 0
begin
connect_socket
break
rescue Error => e
retries -= 1
raise e if retries < 0
end
end
end
|
#read(_length, _timeout = @read_timeout) ⇒ Object
64
65
66
|
# File 'lib/jrpc/transport/socket_base.rb', line 64
def read(_length, _timeout = @read_timeout)
raise NotImplementedError
end
|
#write(_data, _timeout = @write_timeout) ⇒ Object
68
69
70
|
# File 'lib/jrpc/transport/socket_base.rb', line 68
def write(_data, _timeout = @write_timeout)
raise NotImplementedError
end
|