class GELF::Transport::UDP

Attributes

addresses[RW]

Public Class Methods

new(addresses) click to toggle source
# File lib/gelf/transport/udp.rb, line 6
def initialize(addresses)
  @addresses = addresses
end

Public Instance Methods

close() click to toggle source
# File lib/gelf/transport/udp.rb, line 21
def close
  socket = get_socket
  socket.close if socket
end
send_datagrams(datagrams) click to toggle source
# File lib/gelf/transport/udp.rb, line 10
def send_datagrams(datagrams)
  socket = get_socket
  idx = get_address_index

  host, port = @addresses[idx]
  set_address_index((idx + 1) % @addresses.length)
  datagrams.each do |datagram|
    socket.send(datagram, 0, host, port)
  end
end

Private Instance Methods

get_address_index() click to toggle source
# File lib/gelf/transport/udp.rb, line 32
def get_address_index
  Thread.current[:gelf_udp_address_idx] ||= 0
end
get_socket() click to toggle source
# File lib/gelf/transport/udp.rb, line 28
def get_socket
  Thread.current[:gelf_udp_socket] ||= UDPSocket.open
end
set_address_index(value) click to toggle source
# File lib/gelf/transport/udp.rb, line 36
def set_address_index(value)
  Thread.current[:gelf_udp_address_idx] = value
end