/** * Decode substream msg. * * @param buffer the buffer * @param decodeSubMsg the Msg is used to decode the buffer * @param error the error * @return the int */ private int decodeSubstreamMsg(TunnelStreamBuffer buffer,Msg decodeSubMsg, Error error) { _decSubIter.clear(); _decSubIter.setBufferAndRWFVersion(buffer, _classOfService.common().protocolMajorVersion(), _classOfService.common().protocolMinorVersion()); return decodeSubMsg.decode(_decSubIter); }
/** * Trace buffer to xml. * * @param tBuffer the t buffer */ /* Print an XML trace of a TunnelStream buffer. */ void traceBufferToXml(TransportBuffer tBuffer) { int ret; assert((_traceFlags & TunnelStreamTraceFlags.MSGS) > 0); dumpTimestamp(); _traceIter.clear(); _traceIter.setBufferAndRWFVersion(tBuffer, _classOfService.common().protocolMajorVersion(), _classOfService.common().protocolMinorVersion()); if ((ret = _traceMsg.decode(_traceIter)) != CodecReturnCodes.SUCCESS) { System.out.printf("<!-- TunnelTrace: Failed to decode message (%d) -->\n", ret); return; } traceMsgtoXml(_traceMsg, false); }
/** * Decode msg. * * @param buffer the buffer * @param error the error * @return the int */ private int decodeMsg(TunnelStreamBuffer buffer, Error error) { // decode TunnelStream message first _decIter.clear(); _decIter.setBufferAndRWFVersion(buffer, _classOfService.common().protocolMajorVersion(), _classOfService.common().protocolMinorVersion()); _decMsg.clear(); return (_decMsg.decode(_decIter)); }
_traceIter.setBufferAndRWFVersion(msg.encodedDataBody(), _classOfService.common().protocolMajorVersion(), _classOfService.common().protocolMinorVersion()); _traceIter.setBufferAndRWFVersion(msg.encodedMsgBuffer(), _classOfService.common().protocolMajorVersion(), _classOfService.common().protocolMinorVersion()); System.out.println("<!-- TunnelTrace: Full message: -->"); System.out.println(_traceSubMsg.decodeToXml(_traceIter));
@Override public int encodeRequestAsMsg(EncodeIterator encIter, Buffer classOfServiceBuffer, RequestMsg requestMsg) { int ret = CodecReturnCodes.SUCCESS; setupRequestMsgHeader(requestMsg); encIter.clear(); encIter.setBufferAndRWFVersion(classOfServiceBuffer, _classOfService.common().protocolMajorVersion(), _classOfService.common().protocolMinorVersion()); // encode class of service as payload if ((ret = _classOfService.encode(encIter)) < CodecReturnCodes.SUCCESS) { return ret; } requestMsg.encodedDataBody(classOfServiceBuffer); return CodecReturnCodes.SUCCESS; }
_decIter.setBufferAndRWFVersion(bigBuffer, _classOfService.common().protocolMajorVersion(), _classOfService.common().protocolMinorVersion());
private boolean isClassOfServiceValid(ClassOfService classOfService) { return (classOfService.common().maxMsgSize() == _expectedClassOfService.common().maxMsgSize() && classOfService.common().protocolType() == _expectedClassOfService.common().protocolType() && classOfService.common().protocolMajorVersion() == _expectedClassOfService.common().protocolMajorVersion() && classOfService.common().protocolMinorVersion() == _expectedClassOfService.common().protocolMinorVersion() && (classOfService.authentication().type() == _expectedClassOfService.authentication().type() || classOfService.authentication().type() == ClassesOfService.AuthenticationTypes.NOT_REQUIRED) && classOfService.flowControl().type() == _expectedClassOfService.flowControl().type() && classOfService.dataIntegrity().type() == _expectedClassOfService.dataIntegrity().type() && classOfService.guarantee().type() == _expectedClassOfService.guarantee().type()); }
tmpDecodeIter.setBufferAndRWFVersion(tunnelStreamBuffer, _tunnelSubstream._tunnelStream.classOfService().common().protocolMajorVersion(), _tunnelSubstream._tunnelStream.classOfService().common().protocolMinorVersion()); if (tmpDecodeIter.extractStreamId() != _tunnelSubstream._streamId) tmpEncodeIter.setBufferAndRWFVersion(tunnelStreamBuffer, _tunnelSubstream._tunnelStream.classOfService().common().protocolMajorVersion(), _tunnelSubstream._tunnelStream.classOfService().common().protocolMinorVersion()); if ((ret = tmpEncodeIter.replaceStreamId(_tunnelSubstream._streamId)) != CodecReturnCodes.SUCCESS)
_encIter.setBufferAndRWFVersion(tunnelBuffer, _tunnelStream.classOfService().common().protocolMajorVersion(), _tunnelStream.classOfService().common().protocolMinorVersion()); if ((ret = _encIter.replaceSeqNum(seqNum)) != CodecReturnCodes.SUCCESS)
_decIter.setBufferAndRWFVersion(tunnelBuffer, _tunnelStream.classOfService().common().protocolMajorVersion(), _tunnelStream.classOfService().common().protocolMinorVersion()); _genericMsg.decode(_decIter); _queueData.decode(_decIter, _genericMsg); _encIter.setBufferAndRWFVersion(tunnelWriteBuffer, _tunnelStream.classOfService().common().protocolMajorVersion(), _tunnelStream.classOfService().common().protocolMinorVersion()); _queueAck.encode(_encIter); _decIter.clear(); _decIter.setBufferAndRWFVersion(tunnelWriteBuffer, _tunnelStream.classOfService().common().protocolMajorVersion(), _tunnelStream.classOfService().common().protocolMinorVersion()); _genericMsg.clear(); _genericMsg.decode(_decIter);
public void decodeSampleMsg(TunnelStream tunnelStream, TransportBuffer buffer) { DecodeIterator dIter = CodecFactory.createDecodeIterator(); Msg msg = CodecFactory.createMsg(); assertEquals(CodecReturnCodes.SUCCESS, dIter.setBufferAndRWFVersion(buffer, tunnelStream.classOfService().common().protocolMajorVersion(), tunnelStream.classOfService().common().protocolMinorVersion())); assertEquals(CodecReturnCodes.SUCCESS, msg.decode(dIter)); assertEquals(MsgClasses.GENERIC, msg.msgClass()); assertEquals(200, msg.domainType()); assertEquals(1985, msg.streamId()); assertEquals(DataTypes.OPAQUE, msg.containerType()); assertTrue(msg.encodedDataBody().toString().equals("Sample")); }
_encIter.setBufferAndRWFVersion(tunnelBuffer, _tunnelStream.classOfService().common().protocolMajorVersion(), _tunnelStream.classOfService().common().protocolMinorVersion());
private int loadMsg(int entryPosition, boolean isTransmitted, Msg tmpMsg, EncodeIterator tmpEncodeIter, DecodeIterator tmpDecodeIter, Error error) { int length; int ret; TunnelStreamPersistenceBuffer persistBuffer = new TunnelStreamPersistenceBuffer(); length = _fileByteBuf.getInt(entryPosition + MsgHeader.MSG_LENGTH_POS); persistBuffer.length(length); persistBuffer.filePosition(entryPosition); persistBuffer.seqNum(_fileByteBuf.getInt(entryPosition + MsgHeader.MSG_SEQNUM_POS)); persistBuffer.isTransmitted(isTransmitted); /* Get TunnelStreamHeader length. */ _tmpBuf.clear(); _tmpBuf.data(_fileByteBuf, entryPosition + MsgHeader.LENGTH, persistBuffer.length()); tmpDecodeIter.clear(); tmpDecodeIter.setBufferAndRWFVersion(_tmpBuf, _tunnelSubstream._tunnelStream.classOfService().common().protocolMajorVersion(), _tunnelSubstream._tunnelStream.classOfService().common().protocolMinorVersion()); if ((ret = tmpMsg.decode(tmpDecodeIter)) != CodecReturnCodes.SUCCESS) { error.errorId(ret); error.text("Failed to decode message while loading message from file."); return ReactorReturnCodes.FAILURE; } persistBuffer.tunnelStreamHeaderLen(tmpMsg.encodedDataBody().position() - (entryPosition + MsgHeader.LENGTH)); if (isTransmitted) _waitingQueueAckList.push(persistBuffer, TunnelStreamPersistenceBuffer.SUBSTREAM_LINK); else _waitingTransmitList.push(persistBuffer, TunnelStreamPersistenceBuffer.SUBSTREAM_LINK); return ReactorReturnCodes.SUCCESS; }
destCos.common().protocolType(common().protocolType()); destCos.common().protocolMajorVersion(common().protocolMajorVersion()); destCos.common().protocolMinorVersion(common().protocolMinorVersion()); destCos.common().streamVersion(common().streamVersion());
public void encodeSampleMsg(TunnelStream tunnelStream, TransportBuffer buffer) { EncodeIterator eIter = CodecFactory.createEncodeIterator(); Msg msg = CodecFactory.createMsg(); assertEquals(CodecReturnCodes.SUCCESS, eIter.setBufferAndRWFVersion(buffer, tunnelStream.classOfService().common().protocolMajorVersion(), tunnelStream.classOfService().common().protocolMinorVersion())); msg.msgClass(MsgClasses.GENERIC); msg.domainType(200); msg.streamId(1985); msg.containerType(DataTypes.OPAQUE); msg.encodedDataBody().data("Sample"); assertEquals(CodecReturnCodes.SUCCESS, msg.encode(eIter)); }
tunnelBuffer.setAsFullReadBuffer(); _encIter.clear(); _encIter.setBufferAndRWFVersion(tunnelBuffer, _classOfService.common().protocolMajorVersion(), _classOfService.common().protocolMinorVersion()); if ((ret = _encIter.replaceSeqNum(tunnelBuffer.seqNum())) != CodecReturnCodes.SUCCESS)
tmpDecodeIter.setBufferAndRWFVersion(tunnelStreamBuffer, _tunnelSubstream._tunnelStream.classOfService().common().protocolMajorVersion(), _tunnelSubstream._tunnelStream.classOfService().common().protocolMinorVersion()); if (tmpDecodeIter.extractStreamId() != _tunnelSubstream._streamId) tmpEncodeIter.setBufferAndRWFVersion(tunnelStreamBuffer, _tunnelSubstream._tunnelStream.classOfService().common().protocolMajorVersion(), _tunnelSubstream._tunnelStream.classOfService().common().protocolMinorVersion()); if ((ret = tmpEncodeIter.replaceStreamId(_tunnelSubstream._streamId)) != CodecReturnCodes.SUCCESS)
_encIter.setBufferAndRWFVersion(tunnelBuffer, _classOfService.common().protocolMajorVersion(), _classOfService.common().protocolMinorVersion());
/** This provider always rejects tunnel streams. */ class TunnelStreamRejectProvider extends Provider { TunnelStreamRejectOptions _rejectOptions = ReactorFactory.createTunnelStreamRejectOptions(); public TunnelStreamRejectProvider(TestReactor reactor) { super(reactor); } @Override public int listenerCallback(TunnelStreamRequestEvent event) { super.listenerCallback(event); /* Accept the tunnel stream request. */ _rejectOptions.clear(); _rejectOptions.state().streamState(StreamStates.CLOSED); _rejectOptions.state().dataState(DataStates.SUSPECT); _rejectOptions.state().code(StateCodes.NOT_ENTITLED); assertEquals(ReactorReturnCodes.SUCCESS, reactorChannel().rejectTunnelStream(event, _rejectOptions, _errorInfo)); return ReactorReturnCodes.SUCCESS; } }
assertEquals(Codec.minorVersion(), consTunnelStream.classOfService().common().protocolMinorVersion()); assertEquals(614400, consTunnelStream.classOfService().common().maxMsgSize()); assertEquals(6144, consTunnelStream.classOfService().common().maxFragmentSize()); assertEquals(Codec.minorVersion(), provTunnelStream.classOfService().common().protocolMinorVersion()); assertEquals(614400, provTunnelStream.classOfService().common().maxMsgSize()); assertEquals(6144, provTunnelStream.classOfService().common().maxFragmentSize());