void closeWlRequest(WlRequest wlRequest) { if (wlRequest.providerDriven()) { _symbolListRequestKey.clear(); _symbolListRequestKey.msgKey(wlRequest.requestMsg().msgKey()); _symbolListRequestKey.msgKey().serviceId(wlRequest.requestMsg().msgKey().serviceId()); _symbolListRequestKey.domainType(wlRequest.requestMsg().domainType()); _symbolListRequestKey.qos(wlRequest.requestMsg().qos()); _providerRequestTable.remove(_symbolListRequestKey); } _watchlist.closeWlRequest(wlRequest); }
void closeWlRequest(WlRequest wlRequest) { assert(wlRequest.state() != State.RETURN_TO_POOL); _tempWlInteger.value(wlRequest.requestMsg().streamId()); WlRequest removedRequest = _streamIdtoWlRequestTable.remove(_tempWlInteger); assert (removedRequest == wlRequest); // There should a (non-null) WlRequest in the table, and it should be this same request. }
if (wlRequest.state() == WlRequest.State.OPEN || wlRequest.state() == WlRequest.State.REFRESH_PENDING || wlRequest.state() == WlRequest.State.REFRESH_COMPLETE_PENDING) msg.streamId(wlRequest.requestMsg().streamId()); null, msg, (wlRequest != null ? wlRequest.streamInfo() : null), errorInfo)) < ReactorCallbackReturnCodes.SUCCESS)
if (!wlRequest.requestMsg().checkNoRefresh() && (!msg.checkSolicited() || wlRequest.state() == WlRequest.State.REFRESH_PENDING || wlRequest.state() == WlRequest.State.REFRESH_COMPLETE_PENDING ) || wlStream._pendingViewRefresh) if (wlRequest.requestMsg().checkStreaming() && msg.state().streamState() != StreamStates.NON_STREAMING) wlRequest.state(WlRequest.State.OPEN); !wlRequest.hasStaticQos() && !wlRequest.matchedQos().isDynamic()) wlRequest.hasStaticQos(true); if (!wlRequest.requestMsg().checkStreaming()) if( wlRequest.requestMsg().checkStreaming() && wlRequest.requestMsg().checkPause()) wlRequest.stream().numPausedRequestsCount(wlRequest.stream().numPausedRequestsCount() -1); else if (wlRequest.state() == WlRequest.State.REFRESH_PENDING) // multi-part refresh wlRequest.state(WlRequest.State.REFRESH_COMPLETE_PENDING); msg.streamId(wlRequest.requestMsg().streamId()); if (!wlRequest.requestMsg().checkStreaming() && tmpStreamState == StreamStates.OPEN)
if (!wlRequest.hasBehaviour() || wlRequest.symbolListFlags() == 0 ) continue; int ret = ReactorReturnCodes.SUCCESS; int serviceId = 0; if (wlRequest.requestMsg().msgKey().checkHasServiceId()) serviceId = wlRequest.requestMsg().msgKey().serviceId(); else if (wlRequest.streamInfo().serviceName() != null) serviceId = _watchlist.directoryHandler().service(wlRequest.streamInfo().serviceName()).rdmService().serviceId(); if ((wlRequest.symbolListFlags() & SymbolList.SymbolListDataStreamRequestFlags.SYMBOL_LIST_DATA_STREAMS) > 0 ) _requestMsg.streamId(providerProvideStreamId); WlRequest newWlRequest = ReactorFactory.createWlRequest(); newWlRequest.providerDriven(true); newWlRequest.streamInfo().serviceName(wlRequest.streamInfo().serviceName()); _submitOptions.serviceName(wlRequest.streamInfo().serviceName()); _submitOptions.requestMsgOptions().userSpecObj(wlRequest.streamInfo().userSpecObject()); ret = handleRequest(newWlRequest, _requestMsg, _submitOptions, true, errorInfo); newWlRequest.requestMsg().clear(); _requestMsg.copy(newWlRequest.requestMsg(), CopyMsgFlags.ALL_FLAGS); WlInteger wlInteger = ReactorFactory.createWlInteger(); wlInteger.value(providerProvideStreamId); newWlRequest.handler(this); newWlRequest.tableKey(wlInteger); _watchlist.streamIdtoWlRequestTable().put(wlInteger, newWlRequest);
Qos staticQos = (wlRequest.hasStaticQos() ? wlRequest.matchedQos() : null); if (wlService != null && canItemBeOpened(requestMsg, submitOptions, _tempMatchedQos, staticQos, wlService.rdmService(), errorInfo)) wlRequest.serviceId(wlService.rdmService().serviceId()); wlRequest.stream(wlStream); wlRequest.streamInfo().serviceName(submitOptions.serviceName()); wlRequest.streamInfo().userSpecObject(submitOptions.requestMsgOptions().userSpecObj()); _tempMatchedQos.copy(wlRequest.matchedQos()); wlRequest.state(WlRequest.State.REFRESH_PENDING); if ( wlRequest.requestMsg().checkPause() && wlRequest.requestMsg().checkStreaming()) wlStream.numPausedRequestsCount(1); wlRequest.streamInfo().serviceName(submitOptions.serviceName()); wlRequest.streamInfo().userSpecObject(submitOptions.requestMsgOptions().userSpecObj()); _tempMatchedQos.copy(wlRequest.matchedQos()); wlRequest.stream(wlStream); if ((((wlStream.numSnapshotsPending() == 0 || (wlStream.numSnapshotsPending() > 0 && !requestMsg.checkStreaming())) || wlRequest.state() == WlRequest.State.PENDING_REQUEST ) && !wlStream.multiPartRefreshPending() ) && !wlStream._pendingViewRefresh && !(requestMsg.checkHasView() && !requestMsg.checkStreaming() && wlStream.requestPending()) ) if ( wlRequest.requestMsg().checkPause() && wlRequest.requestMsg().checkStreaming()) wlStream.numPausedRequestsCount(wlStream.numPausedRequestsCount() +1);
if (wlRequest.stream() == null ) if (requestMsg.checkStreaming() == wlRequest.requestMsg().checkStreaming()) if (requestMsg.checkPause() && !wlRequest.requestMsg().checkPause()) wlRequest.stream().numPausedRequestsCount(wlRequest.stream().numPausedRequestsCount() +1); if(wlRequest.stream().numPausedRequestsCount() == wlRequest.stream()._userRequestList.size()) wlRequest._reissue_hasChange= true; if (!requestMsg.checkPause() && wlRequest.requestMsg().checkPause()) wlRequest.stream().numPausedRequestsCount(wlRequest.stream().numPausedRequestsCount() -1); wlRequest._reissue_hasChange = true; RequestMsg streamRequestMsg = wlRequest.stream().requestMsg(); requestMsg.encodedDataBody(wlRequest.requestMsg().encodedDataBody()); requestMsg.containerType(wlRequest.requestMsg().containerType()); if(wlRequest.viewElemCount() > 0 ) if ( wlRequest.viewType() != tempWlRequest.viewType() ) if(_wlViewHandler.aggregateViewContainsView(wlRequest.stream()._aggregateView, tempWlRequest) && streamRequestMsg.checkHasView()) effectiveViewChange = false; if (wlRequest.viewElemCount() > 0 && removeOldView)
_tempMsg.clear(); _watchlist.convertRDMToCodecMsg(_watchlist.role().rdmDirectoryRequest(), _tempMsg); wlRequest.requestMsg().clear(); _tempMsg.copy(wlRequest.requestMsg(), CopyMsgFlags.ALL_FLAGS); wlRequest.handler(this); wlRequest.tableKey(wlInteger); _watchlist.streamIdtoWlRequestTable().put(wlInteger, wlRequest); wlRequest.state(WlRequest.State.REFRESH_PENDING); _stream.userRequestList().add(wlRequest); wlRequest.stream(_stream); _roleDirectoryRequestAdded = true;
wlRequest.requestMsg().checkMsgKeyInUpdates() /* MsgKey requested in responses. */ || wlRequest.providerDriven() && !wlRequest.initialResponseReceived() /* Initial response to a provider-driven stream */)) wlRequest.unsetServiceId(); break; wlRequest.unsetServiceId(); break; wlRequest.initialResponseReceived(true); null, msg, (wlRequest != null ? wlRequest.streamInfo() : null), errorInfo); msg, _rdmDictionaryMsg, (wlRequest != null ? wlRequest.streamInfo() : null), errorInfo); null, msg, (wlRequest != null ? wlRequest.streamInfo() : null), errorInfo);
wlRequest.streamInfo().serviceName(submitOptions.serviceName()); wlRequest.streamInfo().userSpecObject(submitOptions.requestMsgOptions().userSpecObj()); wlRequest.stream(_stream); if (!wlRequest.requestMsg().checkNoRefresh() && !_serviceCache._serviceList.isEmpty()) wlRequest.state(WlRequest.State.REFRESH_PENDING);
wlRequest.handler(_loginHandler); break; case DomainTypes.SOURCE: wlRequest.handler(_directoryHandler); break; default: // all other domain types (including dictionary) handled by item handler wlRequest.handler(_itemHandler); break; int ret = wlRequest.handler().submitRequest(wlRequest, (RequestMsg)msg, isReissue, submitOptions, errorInfo); wlRequest.requestMsg().clear(); msg.copy(wlRequest.requestMsg(), CopyMsgFlags.ALL_FLAGS); wlRequest.tableKey(wlInteger); _streamIdtoWlRequestTable.put(wlInteger, wlRequest); wlRequest.returnToPool(); return wlRequest.handler().submitMsg(wlRequest, msg, submitOptions, errorInfo);
_watchlist.reactorChannel().minorVersion()); wlRequest.streamInfo().serviceName(submitOptions.serviceName()); wlRequest.streamInfo().userSpecObject(submitOptions.requestMsgOptions().userSpecObj()); newWlRequest.handler(wlRequest.handler()); newWlRequest.stream(wlRequest.stream()); newRequestMsg.msgKey().name(batchArrayEntry.encodedData()); newRequestMsg.copy(newWlRequest.requestMsg(), CopyMsgFlags.ALL_FLAGS);
while((wlRequest = pendingRequestList.poll()) != null) _submitOptions.serviceName(wlRequest.streamInfo().serviceName()); _submitOptions.requestMsgOptions().userSpecObj(wlRequest.streamInfo().userSpecObject()); if (wlRequest.requestMsg().checkNoRefresh()) wlRequest.requestMsg().flags(wlRequest.requestMsg().flags() & ~RequestMsgFlags.NO_REFRESH); if ((ret = handleRequest(wlRequest, wlRequest.requestMsg(), _submitOptions, false, _errorInfo)) < ReactorReturnCodes.SUCCESS)
private void copyRequestKeyReferencesToMsg(WlRequest wlRequest, Msg destMsg) { MsgKey destKey = destMsg.msgKey(); MsgKey srcKey = wlRequest.requestMsg().msgKey(); destKey.flags(srcKey.flags()); destKey.nameType(srcKey.nameType()); destKey.name(srcKey.name()); destKey.filter(srcKey.filter()); destKey.identifier(srcKey.identifier()); destKey.attribContainerType(srcKey.attribContainerType()); destKey.encodedAttrib(srcKey.encodedAttrib()); if (wlRequest.hasServiceId()) { /* Request may have requested its service by name but we know the ID, so set it */ destKey.applyHasServiceId(); destKey.serviceId((int)wlRequest.serviceId()); } else /* Request may have requested its service by ID. */ destKey.serviceId(srcKey.serviceId()); }
_tempMsg.clear(); _watchlist.convertRDMToCodecMsg(_loginRequest, _tempMsg); wlRequest.requestMsg().clear(); _tempMsg.copy(wlRequest.requestMsg(), CopyMsgFlags.ALL_FLAGS); wlRequest.handler(this); WlInteger wlInteger = ReactorFactory.createWlInteger(); wlInteger.value(_loginRequest.streamId()); wlRequest.tableKey(wlInteger); _watchlist.streamIdtoWlRequestTable().put(wlInteger, wlRequest);
void addToPendingRequestTable(WlRequest wlRequest, ReactorSubmitOptions submitOptions) wlRequest.stream(null); pendingRequestList = _pendingRequestByIdTable.get(wlRequest.requestMsg().msgKey().serviceId()); _pendingRequestByIdTable.put(wlRequest.requestMsg().msgKey().serviceId(), pendingRequestList);
int removeRequestView(WlStream wlStream, WlRequest wlRequest, ReactorErrorInfo errorInfo) if (!wlRequest.requestMsg().checkHasView()) WlView view = wlRequest.view();
usrRequest.requestMsg().applyPause(); for (WlRequest usrRequest : pendingRequestList) usrRequest.requestMsg().applyPause(); for (WlRequest usrRequest : pendingRequestList) usrRequest.requestMsg().applyPause();
wlRequest.hasBehaviour(true); wlRequest.symbolListFlags(_dataStreamFlag.toBigInteger().intValue());