lib/miu/socket.rb in miu-0.0.6 vs lib/miu/socket.rb in miu-0.1.0

- old
+ new

@@ -7,19 +7,11 @@ attr_reader :context, :socket def initialize(socket_type, options = {}) @host = options[:host] || '127.0.0.1' @port = options[:port] - - if options[:context] - @context = options[:context] - @terminate_context = false - else - @context = ZMQ::Context.new(options[:io_threads] || 1) - @terminate_context = true - end - + @context = Miu.context @socket = @context.socket socket_type end def bind rc = @socket.bind "tcp://#{@host}:#{@port}" @@ -31,22 +23,23 @@ rc = @socket.connect "tcp://#{@host}:#{@port}" error_check rc self end - def forward(forwarder) + def forward(to) + parts = [] loop do message = ZMQ::Message.new @socket.recvmsg message + parts << message.copy_out_string more = @socket.more_parts? - forwarder.socket.sendmsg message, (more ? ZMQ::SNDMORE : 0) - break unless more + to.socket.sendmsg message, (more ? ZMQ::SNDMORE : 0) + return parts unless more end end def close @socket.close - @context.terminate if @terminate_context end protected def error_check(rc, source = nil)