Class: Baykit::BayServer::Docker::Ajp::AjpCommandUnPacker

Inherits:
Protocol::CommandUnPacker
  • Object
show all
Includes:
Command
Defined in:
lib/baykit/bayserver/docker/ajp/ajp_command_unpacker.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(handler) ⇒ AjpCommandUnPacker

Returns a new instance of AjpCommandUnPacker.



15
16
17
18
# File 'lib/baykit/bayserver/docker/ajp/ajp_command_unpacker.rb', line 15

def initialize(handler)
  @cmd_handler = handler
  reset
end

Instance Attribute Details

#cmd_handlerObject (readonly)

Returns the value of attribute cmd_handler.



13
14
15
# File 'lib/baykit/bayserver/docker/ajp/ajp_command_unpacker.rb', line 13

def cmd_handler
  @cmd_handler
end

Instance Method Details

#need_dataObject



57
58
59
# File 'lib/baykit/bayserver/docker/ajp/ajp_command_unpacker.rb', line 57

def need_data()
  return @cmd_handler.need_data()
end

#packet_received(pkt) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/baykit/bayserver/docker/ajp/ajp_command_unpacker.rb', line 23

def packet_received(pkt)

  BayLog.debug("ajp:  packet received: type=%d datalen=%d", pkt.type, pkt.data_len)

  case pkt.type
  when AjpType::DATA
    cmd = CmdData.new

  when AjpType::FORWARD_REQUEST
    cmd = CmdForwardRequest.new

  when AjpType::SEND_BODY_CHUNK
    cmd = CmdSendBodyChunk.new(pkt.buf, pkt.header_len, pkt.data_len)

  when AjpType::SEND_HEADERS
    cmd = CmdSendHeaders.new

  when AjpType::END_RESPONSE
    cmd = CmdEndResponse.new

  when AjpType::SHUTDOWN
    cmd = CmdShutdown.new

  when AjpType::GET_BODY_CHUNK
    cmd = CmdGetBodyChunk.new

  else
    raise Sink.new()
  end

  cmd.unpack(pkt)
  return cmd.handle(@cmd_handler)   # visit
end

#resetObject



20
21
# File 'lib/baykit/bayserver/docker/ajp/ajp_command_unpacker.rb', line 20

def reset()
end