class AgentZMQ::SubAgent
Attributes
name[R]
Public Class Methods
new(name)
click to toggle source
# File lib/agent_zmq/agents/sub_agent.rb, line 13 def initialize name @name=name @socket_opts=[] @mutex=Mutex.new @read_thread=nil @do_run_read_thread = true end
Public Instance Methods
do_read()
click to toggle source
# File lib/agent_zmq/agents/sub_agent.rb, line 22 def do_read while true @mutex.synchronize do return unless @do_run_read_thread end @zmq_poller.poll(1000) @zmq_poller.readables.each do |sock| add_msg AgentZMQ::Helpers.read_msg sock end end zmq_socket.close end
reset()
click to toggle source
# File lib/agent_zmq/agents/sub_agent.rb, line 62 def reset clear end
sock_type()
click to toggle source
# File lib/agent_zmq/agents/sub_agent.rb, line 38 def sock_type zmq_context.socket(ZMQ::SUB) end
start()
click to toggle source
# File lib/agent_zmq/agents/sub_agent.rb, line 50 def start start_read_thread end
start_read_thread()
click to toggle source
# File lib/agent_zmq/agents/sub_agent.rb, line 43 def start_read_thread @zmq_poller = ZMQ::Poller.new @zmq_poller.register(zmq_socket, ZMQ::POLLIN) @read_thread = Thread.new {do_read} end
stop()
click to toggle source
# File lib/agent_zmq/agents/sub_agent.rb, line 54 def stop @mutex.synchronize do @do_run_read_thread = false end @read_thread.join zmq_socket.close end