Class: Baykit::BayServer::Docker::Ajp::AjpCommand

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type, to_server) ⇒ AjpCommand

Returns a new instance of AjpCommand.



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

def initialize(type, to_server)
  super type
  @to_server = to_server
end

Instance Attribute Details

#to_serverObject

Returns the value of attribute to_server.



11
12
13
# File 'lib/baykit/bayserver/docker/ajp/ajp_command.rb', line 11

def to_server
  @to_server
end

Instance Method Details

#pack(pkt) ⇒ Object

Super class method must be called from last line of override method since header cannot be packed before data is constructed.



29
30
31
32
33
34
35
# File 'lib/baykit/bayserver/docker/ajp/ajp_command.rb', line 29

def pack(pkt)
  if pkt.type() != @type
    raise RuntimeError.new "Illegal State"
  end
  pkt.to_server = @to_server
  pack_header(pkt)
end

#pack_header(pkt) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/baykit/bayserver/docker/ajp/ajp_command.rb', line 37

def pack_header(pkt) 
  acc = pkt.new_ajp_header_accessor
  if pkt.to_server
    acc.put_byte(0x12)
    acc.put_byte(0x34)
  else
    acc.put_byte('A')
    acc.put_byte('B')
  end

  acc.put_byte((pkt.data_len >> 8) & 0xff)
  acc.put_byte(pkt.data_len & 0xff)
end

#unpack(pkt) ⇒ Object



18
19
20
21
22
23
# File 'lib/baykit/bayserver/docker/ajp/ajp_command.rb', line 18

def unpack(pkt)
  if pkt.type() != @type
    raise RuntimeError.new("Illegal State")
  end
  @to_server = pkt.to_server
end