class Fluent::ForwardOutput

def send_data(node, tag, es)

def send_data(node, tag, es)
  sock = connect(node)
  begin
    opt = [1, @send_timeout.to_i].pack('I!I!')  # { int l_onoff; int l_linger; }
    sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_LINGER, opt)
    opt = [@send_timeout.to_i, 0].pack('L!L!')  # struct timeval
    sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_SNDTIMEO, opt)
    # beginArray(2)
    sock.write FORWARD_HEADER
    # writeRaw(tag)
    sock.write tag.to_msgpack  # tag
    # beginRaw(size)
    sz = es.size
    #if sz < 32
    #  # FixRaw
    #  sock.write [0xa0 | sz].pack('C')
    #elsif sz < 65536
    #  # raw 16
    #  sock.write [0xda, sz].pack('Cn')
    #else
      # raw 32
      sock.write [0xdb, sz].pack('CN')
    #end
    # writeRawBody(packed_es)
    es.write_to(sock)
  ensure
    sock.close
  end
end