class Syslog::Transport::DatagramSocketTransport

Public Class Methods

new(socket) click to toggle source
Calls superclass method
# File lib/syslog/transport/datagram_socket.rb, line 10
def initialize(socket)
  super()

  @thread = Thread.new do
    begin
      loop do
        data, sender = socket.recvfrom(Syslog::Limit::MAXIMUM_MESSAGE_SIZE)
        unless (msg = Syslog::Message.parse(data)).nil?
          push(msg, sender)
        end
      end
    ensure
      socket.close
    end
  end
end

Public Instance Methods

close() click to toggle source
# File lib/syslog/transport/datagram_socket.rb, line 27
def close
  unless @thread.nil?
    @thread.kill
    @thread.join
    @thread = nil
  end
end