Sha256: 9dcee1293bf135d90157842d764d32ffe2bc61170edc310902a28c4c56455717

Contents?: true

Size: 593 Bytes

Versions: 9

Compression:

Stored size: 593 Bytes

Contents

class FnordMetric::UDPAcceptor < EventMachine::Connection

  class << self
    attr_accessor :opts
  end

  def self.start(opts)
    self.opts = opts

    EM.open_datagram_socket(*(opts[:listen] << self << opts))
  end

  def receive_data(event)
    events << event
    push_next_event
  end

  def push_next_event
    return true if events.empty?
    ev = @events.pop
    api.event(ev)
    EM.next_tick(&method(:push_next_event))
  end

  def unbind
    #backend.hangup
  end

  def events
    @events ||= []
  end

  def api
    @api ||= FnordMetric::API.new(FnordMetric.options)
  end

end

Version data entries

9 entries across 9 versions & 3 rubygems

Version Path
johnf-fnordmetric-1.2.10 lib/fnordmetric/acceptors/udp_acceptor.rb
fnordmetric-1.2.9 lib/fnordmetric/acceptors/udp_acceptor.rb
johnf-fnordmetric-1.2.7 lib/fnordmetric/acceptors/udp_acceptor.rb
bp-fnordmetric-1.2.7 lib/fnordmetric/acceptors/udp_acceptor.rb
fnordmetric-1.2.7 lib/fnordmetric/acceptors/udp_acceptor.rb
fnordmetric-1.2.6 lib/fnordmetric/acceptors/udp_acceptor.rb
fnordmetric-1.2.4 lib/fnordmetric/acceptors/udp_acceptor.rb
fnordmetric-1.2.1 lib/fnordmetric/acceptors/udp_acceptor.rb
fnordmetric-1.2.0 lib/fnordmetric/acceptors/udp_acceptor.rb