/* * (non-Javadoc) * * @see * org.jboss.netty.handler.codec.oneone.OneToOneDecoder#decode(org.jboss * .netty.channel.ChannelHandlerContext, org.jboss.netty.channel.Channel, * java.lang.Object) */ @Override protected Object decode(ChannelHandlerContext ctx, Channel channel, Object msg) throws Exception { Message message = (Message) msg; long commandId = ((Long) message.getHeader().getCommandId()).longValue(); if (packetType.getCommandId() != commandId) return msg; ReportRequestMessage requestMessage = new ReportRequestMessage(); requestMessage.setHeader(message.getHeader()); requestMessage.setBodyBuffer(message.getBodyBuffer()); ChannelBuffer bodyBuffer = ChannelBuffers.copiedBuffer(message.getBodyBuffer()); requestMessage.setSequenceNumber( DefaultSequenceNumberUtil.bytes2SequenceN( bodyBuffer.readBytes(ReportRequest.SUBMITSEQUENCENUMBER.getLength()).array())); requestMessage.setReporttype(bodyBuffer.readUnsignedByte()); requestMessage.setUsernumber( bodyBuffer .readBytes(ReportRequest.USERNUMBER.getLength()) .toString(GlobalVars.defaultTransportCharset)); requestMessage.setState(bodyBuffer.readUnsignedByte()); requestMessage.setErrorcode(bodyBuffer.readUnsignedByte()); requestMessage.setReserve( bodyBuffer .readBytes(ReportRequest.RESERVE.getLength()) .toString(GlobalVars.defaultTransportCharset)); return requestMessage; }
/* (non-Javadoc) * @see org.jboss.netty.handler.codec.oneone.OneToOneDecoder#decode(org.jboss.netty.channel.ChannelHandlerContext, org.jboss.netty.channel.Channel, java.lang.Object) */ @Override protected Object decode(ChannelHandlerContext ctx, Channel channel, Object msg) throws Exception { Message message = (Message) msg; long commandId = ((Long) message.getHeader().getCommandId()).longValue(); if (packetType.getCommandId() != commandId) return msg; UnbindRequestMessage requestMessage = new UnbindRequestMessage(); requestMessage.setHeader(message.getHeader()); requestMessage.setBodyBuffer(message.getBodyBuffer()); return requestMessage; }
/* (non-Javadoc) * @see org.jboss.netty.channel.SimpleChannelUpstreamHandler#messageReceived(org.jboss.netty.channel.ChannelHandlerContext, org.jboss.netty.channel.MessageEvent) */ @Override public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception { Message message = (Message) e.getMessage(); long commandId = ((Long) message.getHeader().getCommandId()).longValue(); if (commandId != packetType.getCommandId()) { super.messageReceived(ctx, e); return; } ReportRequestMessage requestMessage = (ReportRequestMessage) message; ReportResponseMessage responseMessage = new ReportResponseMessage(); responseMessage.setRequest(requestMessage); ctx.getChannel().write(responseMessage); ((Session) ctx.getChannel().getAttachment()) .receive(requestMessage.setResponse(responseMessage)); }
/* * (non-Javadoc) * * @see * org.jboss.netty.handler.codec.oneone.OneToOneEncoder#encode(org.jboss * .netty.channel.ChannelHandlerContext, org.jboss.netty.channel.Channel, * java.lang.Object) */ @Override protected Object encode(ChannelHandlerContext ctx, Channel channel, Object msg) throws Exception { if (!(msg instanceof Message)) return msg; Message message = (Message) msg; long commandId = ((Long) message.getHeader().getCommandId()).longValue(); if (commandId != packetType.getCommandId()) return msg; DeliverRequestMessage requestMessage = (DeliverRequestMessage) message; ChannelBuffer bodyBuffer = ChannelBuffers.dynamicBuffer(); bodyBuffer.writeBytes( Bytes.ensureCapacity( requestMessage.getUsernumber().getBytes(GlobalVars.defaultTransportCharset), DeliverRequest.USERNUMBER.getLength(), 0)); bodyBuffer.writeBytes( Bytes.ensureCapacity( requestMessage.getSpnumber().getBytes(GlobalVars.defaultTransportCharset), DeliverRequest.SPNUMBER.getLength(), 0)); bodyBuffer.writeByte(requestMessage.getTppid()); bodyBuffer.writeByte(requestMessage.getTpudhi()); bodyBuffer.writeByte(requestMessage.getMessagecoding()); bodyBuffer.writeInt((int) requestMessage.getMessagelength()); bodyBuffer.writeBytes(requestMessage.getMsgContentBytes()); bodyBuffer.writeBytes( Bytes.ensureCapacity( requestMessage.getReserve().getBytes(GlobalVars.defaultTransportCharset), DeliverRequest.RESERVE.getLength(), 0)); requestMessage.setBodyBuffer(bodyBuffer.copy().array()); ChannelBuffer msgBuffer = ChannelBuffers.dynamicBuffer(); msgBuffer.writeBytes(requestMessage.getHeader().getHeadBuffer()); msgBuffer.writeBytes(requestMessage.getBodyBuffer()); return msgBuffer; }
/* (non-Javadoc) * @see org.jboss.netty.handler.codec.oneone.OneToOneEncoder#encode(org.jboss.netty.channel.ChannelHandlerContext, org.jboss.netty.channel.Channel, java.lang.Object) */ @Override protected Object encode(ChannelHandlerContext ctx, Channel channel, Object msg) throws Exception { if (!(msg instanceof Message)) return msg; Message message = (Message) msg; long commandId = ((Long) message.getHeader().getCommandId()).longValue(); if (commandId != packetType.getCommandId()) return msg; CmppDeliverResponseMessage responseMessage = (CmppDeliverResponseMessage) msg; ChannelBuffer bodyBuffer = ChannelBuffers.dynamicBuffer(); bodyBuffer.writeBytes(DefaultMsgIdUtil.msgId2Bytes(responseMessage.getMsgId())); bodyBuffer.writeInt((int) responseMessage.getResult()); message.setBodyBuffer(bodyBuffer.copy().array()); ChannelBuffer messageBuffer = ChannelBuffers.dynamicBuffer(); messageBuffer.writeBytes(message.getHeader().getHeadBuffer()); messageBuffer.writeBytes(message.getBodyBuffer()); return messageBuffer; }
/* (non-Javadoc) * @see org.jboss.netty.handler.codec.oneone.OneToOneDecoder#decode(org.jboss.netty.channel.ChannelHandlerContext, org.jboss.netty.channel.Channel, java.lang.Object) */ @Override protected Object decode(ChannelHandlerContext ctx, Channel channel, Object msg) throws Exception { Message message = (Message) msg; long commandId = ((Long) message.getHeader().getCommandId()).longValue(); if (packetType.getCommandId() != commandId) return msg; CmppDeliverRequestMessage requestMessage = new CmppDeliverRequestMessage(); requestMessage.setBodyBuffer(message.getBodyBuffer()); requestMessage.setHeader(message.getHeader()); ChannelBuffer bodyBuffer = ChannelBuffers.copiedBuffer(message.getBodyBuffer()); requestMessage.setMsgId( DefaultMsgIdUtil.bytes2MsgId( bodyBuffer.readBytes(CmppDeliverRequest.MSGID.getLength()).array())); requestMessage.setDestId( bodyBuffer .readBytes(CmppDeliverRequest.DESTID.getLength()) .toString(GlobalVars.defaultTransportCharset) .trim()); requestMessage.setServiceid( bodyBuffer .readBytes(CmppDeliverRequest.SERVICEID.getLength()) .toString(GlobalVars.defaultTransportCharset) .trim()); requestMessage.setTppid(bodyBuffer.readUnsignedByte()); requestMessage.setTpudhi(bodyBuffer.readUnsignedByte()); requestMessage.setMsgfmt(bodyBuffer.readUnsignedByte()); requestMessage.setSrcterminalId( bodyBuffer .readBytes(CmppDeliverRequest.SRCTERMINALID.getLength()) .toString(GlobalVars.defaultTransportCharset) .trim()); requestMessage.setSrcterminalType(bodyBuffer.readUnsignedByte()); requestMessage.setRegisteredDelivery(bodyBuffer.readUnsignedByte()); requestMessage.setMsgLength(bodyBuffer.readUnsignedByte()); if (requestMessage.getRegisteredDelivery() == 0) { requestMessage.setMsgContent( bodyBuffer .readBytes(requestMessage.getMsgLength()) .toString(GlobalVars.defaultTransportCharset) .trim()); } else { requestMessage .getReportRequestMessage() .setMsgId( DefaultMsgIdUtil.bytes2MsgId( bodyBuffer.readBytes(CmppReportRequest.MSGID.getLength()).array())); requestMessage .getReportRequestMessage() .setStat( bodyBuffer .readBytes(CmppReportRequest.STAT.getLength()) .toString(GlobalVars.defaultTransportCharset) .trim()); requestMessage .getReportRequestMessage() .setSubmitTime( bodyBuffer .readBytes(CmppReportRequest.SUBMITTIME.getLength()) .toString(GlobalVars.defaultTransportCharset) .trim()); requestMessage .getReportRequestMessage() .setDoneTime( bodyBuffer .readBytes(CmppReportRequest.DONETIME.getLength()) .toString(GlobalVars.defaultTransportCharset) .trim()); requestMessage .getReportRequestMessage() .setDestterminalId( bodyBuffer .readBytes(CmppReportRequest.DESTTERMINALID.getLength()) .toString(GlobalVars.defaultTransportCharset) .trim()); requestMessage.getReportRequestMessage().setSmscSequence(bodyBuffer.readUnsignedInt()); } requestMessage.setLinkid( bodyBuffer .readBytes(CmppDeliverRequest.LINKID.getLength()) .toString(GlobalVars.defaultTransportCharset)); return requestMessage; }