Class: AgentClientProtocol::Transport::NdjsonWriter

Inherits:
Object
  • Object
show all
Defined in:
lib/agent_client_protocol/transport.rb

Instance Method Summary collapse

Constructor Details

#initialize(io) ⇒ NdjsonWriter

Returns a new instance of NdjsonWriter.



10
11
12
13
14
# File 'lib/agent_client_protocol/transport.rb', line 10

def initialize(io)
  @io = io
  @io.sync = true
  @mutex = Mutex.new
end

Instance Method Details

#closeObject



24
25
26
27
28
# File 'lib/agent_client_protocol/transport.rb', line 24

def close
  @io.close unless @io.closed?
rescue IOError
  # already closed
end

#write(message) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/agent_client_protocol/transport.rb', line 16

def write(message)
  line = JSON.generate(message) + "\n"
  @mutex.synchronize do
    @io.write(line)
    @io.flush
  end
end