/** * Gets the state info. * * @param info the info * @return the state info */ int getStateInfo(TunnelStreamStateInfo info) { try { info.set(_tunnelStreamState, _outboundTransmitList.count(), _outboundMsgAckList.count(), _classOfService.flowControl().sendWindowSize() - _sendBytes, _classOfService.flowControl().recvWindowSize() - _recvBytes); } catch (Exception e) { return ReactorReturnCodes.FAILURE; } catch (InternalError e) { return ReactorReturnCodes.FAILURE; } return ReactorReturnCodes.SUCCESS; }
tsOpenOptions.classOfService().flowControl().recvWindowSize(cos.flowControl().recvWindowSize()); tsOpenOptions.classOfService().flowControl().type(cos.flowControl().type());
destCos.flowControl().recvWindowSize(flowControl().recvWindowSize()); destCos.flowControl().sendWindowSize(flowControl().sendWindowSize());
_flowControl.recvWindowSize((int)_tempInt.toLong());
_tunnelStreamMsg.domainType(_domainType); ackHeader.seqNum(_recvLastSeqNum); ackHeader.recvWindow(_classOfService.flowControl().recvWindowSize()); + _sendLastSeqNum + " out, " + _sendLastSeqNumAcked + " acked out, " + _classOfService.flowControl().recvWindowSize() + " recvWindow -->"); _hasFinSent = true; ackHeader.recvWindow(_classOfService.flowControl().recvWindowSize()); _tunnelStreamMsg.domainType(_domainType); ackHeader.seqNum(_recvLastSeqNum); ackHeader.recvWindow(_classOfService.flowControl().recvWindowSize()); _hasFinSent = true; ackHeader.recvWindow(_classOfService.flowControl().recvWindowSize()); ackHeader.recvWindow(_classOfService.flowControl().recvWindowSize()); _tunnelStreamMsg.domainType(_domainType); ackHeader.seqNum(_receivedFinalFinSeqNum); ackHeader.recvWindow(_classOfService.flowControl().recvWindowSize());
if (options.classOfService().flowControl().recvWindowSize() == -1) options.classOfService().flowControl().recvWindowSize(TunnelStream.DEFAULT_RECV_WINDOW); if (options.classOfService().flowControl().recvWindowSize() < options.classOfService().common().maxFragmentSize()) options.classOfService().flowControl().recvWindowSize(options.classOfService().common().maxFragmentSize()); tunnelStream.classOfService().flowControl().sendWindowSize(event.classOfService().flowControl().recvWindowSize()); if (tunnelStream.classOfService().flowControl().sendWindowSize() < tunnelStream.classOfService().common().maxFragmentSize()) tunnelStream.classOfService().flowControl().sendWindowSize(tunnelStream.classOfService().common().maxFragmentSize());
/** 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; } }
if (tunnelStream.classOfService().flowControl().recvWindowSize() == -1) tunnelStream.classOfService().flowControl().recvWindowSize(TunnelStream.DEFAULT_RECV_WINDOW); if (tunnelStream.classOfService().flowControl().recvWindowSize() < tunnelStream.classOfService().common().maxFragmentSize()) tunnelStream.classOfService().flowControl().recvWindowSize(tunnelStream.classOfService().common().maxFragmentSize());
assertEquals(TunnelStream.DEFAULT_RECV_WINDOW, consTunnelStream.classOfService().flowControl().recvWindowSize()); assertEquals(DataIntegrityTypes.RELIABLE, consTunnelStream.classOfService().dataIntegrity().type()); assertEquals(GuaranteeTypes.NONE, consTunnelStream.classOfService().guarantee().type()); assertEquals(FlowControlTypes.BIDIRECTIONAL, provTunnelStream.classOfService().flowControl().type()); assertEquals(CosCommon.DEFAULT_MAX_FRAGMENT_SIZE, provTunnelStream.classOfService().flowControl().sendWindowSize()); assertEquals(TunnelStream.DEFAULT_RECV_WINDOW, provTunnelStream.classOfService().flowControl().recvWindowSize()); assertEquals(DataIntegrityTypes.RELIABLE, provTunnelStream.classOfService().dataIntegrity().type()); assertEquals(GuaranteeTypes.NONE, provTunnelStream.classOfService().guarantee().type());
_elemEntry.name(ClassesOfService.ElementNames.RECV_WINDOW_SIZE); _elemEntry.dataType(DataTypes.INT); int recvWindowSize = _flowControl.recvWindowSize(); _tempInt.value(recvWindowSize); if ((ret = _elemEntry.encode(eIter, _tempInt)) < CodecReturnCodes.SUCCESS)
assertEquals(FlowControlTypes.BIDIRECTIONAL, consTunnelStream.classOfService().flowControl().type()); assertEquals(TunnelStream.DEFAULT_RECV_WINDOW, consTunnelStream.classOfService().flowControl().sendWindowSize()); assertEquals(TunnelStream.DEFAULT_RECV_WINDOW, consTunnelStream.classOfService().flowControl().recvWindowSize()); assertEquals(DataIntegrityTypes.RELIABLE, consTunnelStream.classOfService().dataIntegrity().type()); assertEquals(GuaranteeTypes.NONE, consTunnelStream.classOfService().guarantee().type()); assertEquals(FlowControlTypes.BIDIRECTIONAL, provTunnelStream.classOfService().flowControl().type()); assertEquals(provTunnelStream.classOfService().common().maxFragmentSize(), provTunnelStream.classOfService().flowControl().sendWindowSize()); assertEquals(TunnelStream.DEFAULT_RECV_WINDOW, provTunnelStream.classOfService().flowControl().recvWindowSize()); assertEquals(DataIntegrityTypes.RELIABLE, provTunnelStream.classOfService().dataIntegrity().type()); assertEquals(GuaranteeTypes.NONE, provTunnelStream.classOfService().guarantee().type());