27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/socketeer/socketeer.rb', line 27
def bind host, port, &callback
callback ||= proc { |m| handle_message m }
@message_handler = MessageHandler.new &callback
@server = Server.new host, port, Handler
@collator = MessageCollator.new "\n\n"
@in_message_transformer = MessageTransformer.new {|d| MessagePack.unpack d }
@out_message_transformer = MessageTransformer.new { |d|
MessagePack.pack(d) + "\n\n"
}
@server.bind_queues IQueue.new, IQueue.new
@collator.bind_queues IQueue.new, IQueue.new
@in_message_transformer.bind_queues IQueue.new, IQueue.new
@out_message_transformer.bind_queues IQueue.new, IQueue.new
@message_handler.bind_queues IQueue.new, IQueue.new
@pipeline = Pipeline.new(@server,
Passthrough.new(:data, @collator),
Passthrough.new(:data, @in_message_transformer),
@message_handler,
Passthrough.new(:data, @out_message_transformer),
@server)
[host, port]
end
|