Method: Funl::MessageSequencer#initialize

Defined in:
lib/funl/message-sequencer.rb

#initialize(server, *conns, log: Logger.new($stderr), stream_type: ObjectStream::MSGPACK_TYPE, message_class: Message, blob_type: Blobber::MSGPACK_TYPE, tick: 0) ⇒ MessageSequencer

Returns a new instance of MessageSequencer.



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/funl/message-sequencer.rb', line 31

def initialize server, *conns, log: Logger.new($stderr),
    stream_type: ObjectStream::MSGPACK_TYPE,
    message_class: Message,
    blob_type: Blobber::MSGPACK_TYPE,
    tick: 0

  @server = server
  @log = log
  @stream_type = stream_type
  @message_class = message_class
  @blob_type = blob_type
  @greeting = default_greeting
  @tick = tick

  init_selector

  conns.each do |conn|
    try_conn conn
  end
  
  @subscribers_to_all = [] # [conn, ...]
  @subscribers = Hash.new {|h, tag| h[tag] = []} # tag => [conn, ...]
  @tags = Hash.new {|h, conn| h[conn] = []} # conn => [tag, ...]
end