Class: Slack::RealTime::Concurrency::Celluloid::Socket
- Extended by:
- Forwardable
- Includes:
- Celluloid::IO, Celluloid::Logger
- Defined in:
- lib/slack/real_time/concurrency/celluloid.rb
Defined Under Namespace
Classes: Actor
Constant Summary collapse
- BLOCK_SIZE =
4096
Instance Attribute Summary collapse
-
#socket ⇒ Object
readonly
Returns the value of attribute socket.
Attributes inherited from Socket
Instance Method Summary collapse
- #connect! {|driver| ... } ⇒ Object
-
#initialize(*args) ⇒ Socket
constructor
A new instance of Socket.
- #read ⇒ Object
- #run_loop ⇒ Object
- #start_async ⇒ Object
Methods inherited from Socket
#disconnect!, #send_data, #start_sync
Constructor Details
#initialize(*args) ⇒ Socket
Returns a new instance of Socket.
22 23 24 25 |
# File 'lib/slack/real_time/concurrency/celluloid.rb', line 22 def initialize(*args) super @driver = build_driver end |
Instance Attribute Details
#socket ⇒ Object (readonly)
Returns the value of attribute socket.
20 21 22 |
# File 'lib/slack/real_time/concurrency/celluloid.rb', line 20 def socket @socket end |
Instance Method Details
#connect! {|driver| ... } ⇒ Object
28 29 30 31 32 33 |
# File 'lib/slack/real_time/concurrency/celluloid.rb', line 28 def connect! super driver.start future.run_loop end |
#read ⇒ Object
41 42 43 44 |
# File 'lib/slack/real_time/concurrency/celluloid.rb', line 41 def read buffer = socket.readpartial(BLOCK_SIZE) driver.parse buffer end |
#run_loop ⇒ Object
35 36 37 38 39 |
# File 'lib/slack/real_time/concurrency/celluloid.rb', line 35 def run_loop loop { read } if socket rescue EOFError # connection closed end |