class EventMachine::DatagramObject

@private

Public Class Methods

new(io) click to toggle source
Calls superclass method EventMachine::Selectable.new
# File lib/em/pure_ruby.rb, line 905
def initialize io
  super io
  @outbound_q = []
end

Public Instance Methods

get_outbound_data_size() click to toggle source

#get_outbound_data_size

# File lib/em/pure_ruby.rb, line 936
def get_outbound_data_size
  @outbound_q.inject(0) {|memo,obj| memo += (obj || "").length}
end
select_for_reading?() click to toggle source

select_for_reading?

# File lib/em/pure_ruby.rb, line 931
def select_for_reading?
  true
end
select_for_writing?() click to toggle source

select_for_writing?

# File lib/em/pure_ruby.rb, line 919
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) click to toggle source

#send_datagram

# File lib/em/pure_ruby.rb, line 911
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