Class: EventMachine::DatagramObject
- Inherits:
-
Selectable
- Object
- Selectable
- EventMachine::DatagramObject
- Defined in:
- lib/em/pure_ruby.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, #schedule_close, #set_inactivity_timeout
Constructor Details
#initialize(io) ⇒ DatagramObject
Returns a new instance of DatagramObject.
1152 1153 1154 1155 |
# File 'lib/em/pure_ruby.rb', line 1152 def initialize io super io @outbound_q = [] end |
Instance Method Details
#get_outbound_data_size ⇒ Object
#get_outbound_data_size
1183 1184 1185 |
# File 'lib/em/pure_ruby.rb', line 1183 def get_outbound_data_size @outbound_q.inject(0) {|memo,obj| memo += (obj || "").length} end |
#select_for_reading? ⇒ Boolean
#select_for_reading?
1178 1179 1180 |
# File 'lib/em/pure_ruby.rb', line 1178 def select_for_reading? true end |
#select_for_writing? ⇒ Boolean
#select_for_writing?
1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 |
# File 'lib/em/pure_ruby.rb', line 1166 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
1158 1159 1160 1161 1162 1163 |
# File 'lib/em/pure_ruby.rb', line 1158 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 |