Class: EventMachine::DatagramObject
- Inherits:
-
Selectable
- Object
- Selectable
- EventMachine::DatagramObject
- Defined in:
- lib/pr_eventmachine.rb
Direct Known Subclasses
Instance Attribute Summary
Attributes inherited from Selectable
Instance Method Summary collapse
-
#get_outbound_data_size ⇒ Object
#get_outbound_data_size.
-
#initialize(io) ⇒ DatagramObject
constructor
A new instance of DatagramObject.
-
#select_for_reading? ⇒ Boolean
#select_for_reading?.
-
#select_for_writing? ⇒ Boolean
#select_for_writing?.
-
#send_datagram(data, target) ⇒ Object
#send_datagram.
Methods inherited from Selectable
#close_scheduled?, #get_peername, #heartbeat, #set_inactivity_timeout
Constructor Details
#initialize(io) ⇒ DatagramObject
Returns a new instance of DatagramObject.
899 900 901 902 |
# File 'lib/pr_eventmachine.rb', line 899 def initialize io super io @outbound_q = [] end |
Instance Method Details
#get_outbound_data_size ⇒ Object
#get_outbound_data_size
930 931 932 |
# File 'lib/pr_eventmachine.rb', line 930 def get_outbound_data_size @outbound_q.inject(0) {|memo,obj| memo += (obj || "").length} end |
#select_for_reading? ⇒ Boolean
#select_for_reading?
925 926 927 |
# File 'lib/pr_eventmachine.rb', line 925 def select_for_reading? true end |
#select_for_writing? ⇒ Boolean
#select_for_writing?
913 914 915 916 917 918 919 920 921 922 |
# File 'lib/pr_eventmachine.rb', line 913 def select_for_writing? unless @close_scheduled if @outbound_q.empty? @close_scheduled = true if @close_requested false else true end end end |
#send_datagram(data, target) ⇒ Object
#send_datagram
905 906 907 908 909 910 |
# File 'lib/pr_eventmachine.rb', line 905 def send_datagram data, target # TODO, coalesce here perhaps by being smarter about appending to @outbound_q.last? unless @close_scheduled or @close_requested @outbound_q << [data.to_s, target] end end |