class Empp::EmppParser
Public Class Methods
logger=(logger)
click to toggle source
# File lib/empp/empp_parser.rb, line 18 def self.logger=(logger) @@logger = logger end
parseBody(object, body)
click to toggle source
# File lib/empp/empp_parser.rb, line 64 def self.parseBody(object, body) @@logger.debug("Enter EmppParser:: parse body") case object.command_id when Constants::EMPP_CONNECT_RESP parseConnectResp(object, body) # no need to process active_test resp #when Constants::EMPP_ACTIVE_TEST_RESP # ; when Constants::EMPP_SUBMIT_RESP parseSubmitResp(object, body) when Constants::EMPP_DELIVER parseEmppDeliver(object, body) end # end case @@logger.debug("Leave EmppParser parse body") end
parseConnectResp(object, body)
click to toggle source
# File lib/empp/empp_parser.rb, line 82 def self.parseConnectResp(object, body) sio = StringIO.new(body) status = '' sio.read(4, status) status = BinData::Uint32be.read(status) object.status = status end
parseDeliveryState(content)
click to toggle source
# File lib/empp/empp_parser.rb, line 147 def self.parseDeliveryState(content) @@logger.debug("Enter EmppParser::parseDeliveryState") @@logger.debug("EmppParser::parseDeliveryState content=#{content}") sio = StringIO.new(content) msg_id = sio.read(10) state = sio.read(7) submit_time = sio.read(10) done_time = sio.read(10) dest_terminal_id = sio.read(32) dest_terminal_id = dest_terminal_id.unpack("A*")[0] # delete tailing zeros sequence_id = sio.read(4) sequence_id = BinData::Uint32be.read(sequence_id) deliveryState = DeliveryState.new deliveryState.msg_id = msg_id deliveryState.state = state deliveryState.submit_time = submit_time deliveryState.done_time = done_time deliveryState.dest_terminal_id = dest_terminal_id deliveryState.sequence_id = sequence_id @@logger.debug("mppParser::parseDeliveryState get Object=#{deliveryState}") @@logger.debug("LeaveEmppParser::parseDeliveryState") deliveryState end
parseEmppDeliver(object, body)
click to toggle source
# File lib/empp/empp_parser.rb, line 106 def self.parseEmppDeliver(object, body) @@logger.debug("Enter EmppParser::parseEmppDeliver") @@logger.debug("EmppParser::parseEmppDeliver object=#{object}") sio = StringIO.new(body) tmpVal = '' msg_id = sio.read(10) dest_id = sio.read(21) service_id = sio.read(10) sio.read(2) msg_fmt = sio.read(1) msg_fmt = msg_fmt[0] # 1 byte integer src_terminal_id = sio.read(32) src_terminal_id = src_terminal_id.unpack("A*")[0] # delete trailing zeros src_terminal_id = Utils::Utils.deal_with_terminal_id(src_terminal_id) sio.read(1) registered_delivery = sio.read(1) registered_delivery = registered_delivery[0] msg_length = sio.read(1) msg_length = msg_length[0] msg_content = sio.read(msg_length) object.msg_id = msg_id object.dest_id = dest_id object.service_id = service_id object.msg_format = msg_fmt object.src_terminal_id = src_terminal_id object.msg_length = msg_length object.msg_content = msg_content object.registered_delivery = registered_delivery @@logger.debug("Leave EmppParser::parseEmppDeliver") end
parseHeader(header)
click to toggle source
# File lib/empp/empp_parser.rb, line 22 def self.parseHeader(header) sio = StringIO.new(header) total_length = '' sio.read(4, total_length) total_length = BinData::Uint32be.read(total_length) command_id = '' sio.read(4, command_id) command_id = BinData::Uint32be.read(command_id) sequence_id = '' sio.read(4, sequence_id) sequence_id = BinData::Uint32be.read(sequence_id) object = nil case command_id when Constants::EMPP_CONNECT_RESP object = MsgConnectResp.new when Constants::EMPP_ACTIVE_TEST_RESP object = MsgActiveTestResp.new when Constants::EMPP_SUBMIT_RESP object = MsgSubmitResp.new when Constants::EMPP_DELIVER object = MsgDelivery.new else object = EmppBase.new object.command_id = -1 end # end case object.total_length = total_length object.sequence_id = sequence_id object end
parseSubmitResp(object, body)
click to toggle source
# File lib/empp/empp_parser.rb, line 90 def self.parseSubmitResp(object, body) @@logger.debug("Enter EmppParser::parseSubmitResp") @@logger.debug("EmppParser parseSubmitResp object=#{object}") sio = StringIO.new(body) status = '' msg_id = sio.read(10) sio.read(4, status) status = BinData::Uint32be.read(status) object.msg_id = msg_id object.status = status @@logger.debug("Leave EmppParser::parseSubmitResp") end