public virtual bool addRequestToBatch(ConstrainRequest request, RequestTutor tutor, RequestListener listener) { if (this.batchType != CONTROL) { log.Error("Unexpected request type was given to batch"); return(false); } //can we queue costrain rebind for 2 different sessions? (NO) string key = CONSTRAINT_KEY; RequestObjects requestObj = new RequestObjects(request, tutor, listener); RequestObjects queuedRequest = null; keys.TryGetValue(key, out queuedRequest); if (queuedRequest != null) { queuedRequest.tutor.notifyAbort(); this.substituteRequest(key, requestObj); } else { this.addRequestInternal(key, requestObj); } return(true); }
/// <summary> /// Change-bandwidth request. /// </summary> /// <param name="maxBandwidth"> </param> /// <param name="parent"> if this is a retransmission, {@code parent} must be the original client request. /// If this is a client request, {@code parent} must be null. </param> public ConstrainRequest(double maxBandwidth, ConstrainRequest parent) { this.addParameter("LS_op", "constrain"); if (maxBandwidth == 0) { this.addParameter("LS_requested_max_bandwidth", "unlimited"); } else if (maxBandwidth > 0) { this.addParameter("LS_requested_max_bandwidth", maxBandwidth); } this.maxBandwidth = maxBandwidth; this.clientRequestId = (parent == null ? requestId : parent.ClientRequestId); }