while (position != 0) persistBuffer = new TunnelStreamPersistenceBuffer(); persistBuffer.tunnelStreamHeaderLen(0); persistBuffer.filePosition(position); persistBuffer = new TunnelStreamPersistenceBuffer(); length = _fileByteBuf.getInt(entryPosition + MsgHeader.MSG_LENGTH_POS); persistBuffer.length(length); for(int i = 0; i < Header.MAX_MSGS; ++i) persistBuffer = new TunnelStreamPersistenceBuffer(); persistBuffer.filePosition(Header.LENGTH + i * (MsgHeader.LENGTH + _maxMsgLength + SlicedBufferPool.TUNNEL_STREAM_HDR_SIZE)); _persistentBufferPool.push(persistBuffer, TunnelStreamPersistenceBuffer.SUBSTREAM_LINK);
while (position != 0) TunnelStreamPersistenceBuffer persistBuffer = new TunnelStreamPersistenceBuffer(); persistBuffer.filePosition(position); _persistentBufferPool.push(persistBuffer, TunnelStreamPersistenceBuffer.SUBSTREAM_LINK); for(int i = 0; i < Header.MAX_MSGS; ++i) persistBuffer = new TunnelStreamPersistenceBuffer(); persistBuffer.filePosition(Header.LENGTH + i * (MsgHeader.LENGTH + _maxMsgLength + SlicedBufferPool.TUNNEL_STREAM_HDR_SIZE)); _persistentBufferPool.push(persistBuffer, TunnelStreamPersistenceBuffer.SUBSTREAM_LINK);
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; }