Class: Baykit::BayServer::Agent::Multiplexer::JobMultiplexerBase

Inherits:
MultiplexerBase
  • Object
show all
Includes:
TimerHandler
Defined in:
lib/baykit/bayserver/agent/multiplexer/job_multiplexer_base.rb

Direct Known Subclasses

JobMultiplexer

Instance Attribute Summary collapse

Attributes inherited from MultiplexerBase

#agent, #channel_count, #lock, #rudders, #rudders_lock

Instance Method Summary collapse

Methods inherited from MultiplexerBase

#add_rudder_state, #close_all, #close_rudder, #close_timeout_sockets, #consume_oldest_unit, #find_rudder_state_by_key, #get_rudder_state, #get_transporter, #is_busy, #remove_rudder_state

Methods included from Common::Multiplexer

#add_rudder_state, #cancel_read, #cancel_write, #close_rudder, #consume_oldest_unit, #get_rudder_state, #get_transporter, #is_busy, #is_non_blocking, #next_accept, #next_read, #next_write, #on_busy, #remove_rudder_state, #req_accept, #req_close, #req_connect, #req_end, #req_read, #req_write, #use_async_api

Constructor Details

#initialize(agt, anchorable) ⇒ JobMultiplexerBase

Returns a new instance of JobMultiplexerBase.



12
13
14
15
16
17
18
19
# File 'lib/baykit/bayserver/agent/multiplexer/job_multiplexer_base.rb', line 12

def initialize(agt, anchorable)
  super(agt)

  @anchorable = anchorable
  @agent.add_timer_handler(self)

  @pipe = IO::pipe
end

Instance Attribute Details

#anchorableObject (readonly)

Returns the value of attribute anchorable.



9
10
11
# File 'lib/baykit/bayserver/agent/multiplexer/job_multiplexer_base.rb', line 9

def anchorable
  @anchorable
end

#pipeObject (readonly)

Returns the value of attribute pipe.



10
11
12
# File 'lib/baykit/bayserver/agent/multiplexer/job_multiplexer_base.rb', line 10

def pipe
  @pipe
end

Instance Method Details

#on_freeObject



29
30
31
32
33
34
35
36
37
38
39
# File 'lib/baykit/bayserver/agent/multiplexer/job_multiplexer_base.rb', line 29

def on_free()
  if @agent.aborted
    return
  end

  if @anchorable
    BayServer::anchorable_port_map.keys.each do |rd|
      req_accept(rd)
    end
  end
end

#on_timerObject

Implements TimerHandler



45
46
47
# File 'lib/baykit/bayserver/agent/multiplexer/job_multiplexer_base.rb', line 45

def on_timer()
  close_timeout_sockets()
end

#shutdownObject

Implements Multiplexer



25
26
27
# File 'lib/baykit/bayserver/agent/multiplexer/job_multiplexer_base.rb', line 25

def shutdown()
  close_all()
end